Как преобразовать текст поля в нижний регистр внутри solr из солярия setQuery до получения результата?
Я хочу найти "заголовок" по приведенным ниже данным, но перед тем, как задавать запрос из солярия, я хочу преобразовать весь текст в "заголовок" в нижнем регистре, а затем получить результат.
journalIssn: 0007-1447
выпуск: 4680
pageInfo: 671-673
источник: PMC
Название: Международное общество гематологии.
pubYear: 1950
JournalVolume: 2
pubType: "Отчет о встрече"
1 ответ
Вы можете преобразовать строку запроса с помощью php function strtolower ();
http://php.net/manual/en/function.strtolower.php
Или вы можете настроить новый тип поля с помощью фильтра LowerCase в schema.xml
https://cwiki.apache.org/confluence/display/solr/Tokenizers
<fieldType name="newFilter" class="solr.TextField" omitNorms="false" positionIncrementGap="100" multiValued="true">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
Пример:
В: "Я просто люблю свой iPhone!"
Out: "я", "просто", "любовь", "мой", "iphone"