Я пытаюсь выяснить две вещи в этой публикации:
Почему 'build' NOT ограничено 'build', хотя полеВ определении типа определен стеммер.Тем не менее, «строительство» сводится к «сборка»
Как использовать Люка, чтобы изучить индекс, чтобы увидеть, какие слова были получены и для чего.Я не мог видеть, как «здание» останавливается, «строится» в Люке.Я знаю, что Lucene справляется с этим, потому что я могу успешно получить строку с помощью команды "build", выполнив поиск по запросу "build".
Эта ссылка была довольно полезной, ноне ответил на мои вопросы.
Для справки, вот части schema.xml.
<fieldType name="text_en" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<!-- in this example, we will only use synonyms at query time
<filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
-->
<!-- Case insensitive stop word removal.
add enablePositionIncrements=true in both the index and query
analyzers to leave a 'gap' for more accurate phrase queries.
-->
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords_en.txt"
enablePositionIncrements="true"
/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPossessiveFilterFactory"/>
<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
<!-- Optionally you may want to use this less aggressive stemmer instead of PorterStemFilterFactory:
<filter class="solr.EnglishMinimalStemFilterFactory"/>
-->
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="stopwords_en.txt"
enablePositionIncrements="true"
/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPossessiveFilterFactory"/>
<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
<!-- Optionally you may want to use this less aggressive stemmer instead of PorterStemFilterFactory:
<filter class="solr.EnglishMinimalStemFilterFactory"/>
-->
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
</fieldType>
и определение поля:
<field name="features" type="text_en" indexed="true" stored="true" multiValued="true"/>
Набор данныхсостоит из нескольких документов, 1 документ имеет «здание» в поле функций, 1 документ имеет «встроенный» в том же поле, и 1 документ имеет «встроенный» в поле функций:
файл: hd.xml:
<field name="features">building NoiseGuard, SilentSeek technology, Fluid Dynamic Bearing (FDB) motor</field>
file ipod_video.xml:
<field name="features">Notes, Calendar, Phone book, Hold button, Date display, Photo wallet, Built-in games, JPEG photo playback, Upgradeable firmware, USB 2.0 compatibility, Playback speed control, Rechargeable capability, Battery level indication</field>
file sd500.xml:
<field name="features">built in flash, red-eye reduction</field>
Используя Lukeall-3.3.0, эторезультат, который я получаю от поиска «функции: сборка».Обратите внимание, что я получаю обратно 1 (вместо ожидаемых 3 документов) Даже в этом одном документе я не вижу основы, т. Е. Вижу только оригинальное слово 'building', как показано:
и, снова в Luke, в поиске «features: built» возвращает два документа:
При выборе одного из них отображается исходное «build», но не «build».