Как преобразовать текст поля в нижний регистр внутри 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"

Другие вопросы по тегам