Я пытаюсь найти часть слова с помощью Solr, но не могу заставить его работать.
Я использую это в своем schema.xml
файле.
<fieldType name="text" class="solr.TextField" omitNorms="false">
<analyzer type="index">
<tokenizer class="solr.NGramTokenizerFactory" minGramSize="3" maxGramSize="15" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.PorterStemFilterFactory"/>
<filter class="solr.WordDelimiterFilterFactory" stemEnglishPossessive="1" splitOnNumerics="1" splitOnCaseChange="1" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="1" preserveOriginal="1"/>
</analyzer>
</fieldType>
Поиск die h
не будет работать, но die hard
вернет некоторые результаты. Я переиндексировал базу данных после добавления указанной выше конфигурации.
Здесь URL-адрес и результат поиска die hard
. Отладчик включен.
Здесь URL-адрес и результат поиска die h
. Отладчик включен.
Я использую Solr 3.3. Здесь находится остальная часть schema.xml
файла.