Я использую Solr 4.6.0, и я пытаюсь получить наиболее частые термины, сгруппированные по году. Поскольку возможно, что мои стоп-слова могут часто меняться, я не применяю стоп-слова при индексировании времени. Вместо этого все динамические словарные списки, такие как стоп-слова, прообразы и синонимы, используются по адресу query времени. Но хотя в списке повторений есть такие термины, как «из» и «the», они все еще отображаются в списке результатов (см. Результаты).Solr facets игнорируют стоп-слова во время запроса
Вопрос: Как я могу получить граненые и стопслов фильтруются результаты, если я использую StopFilterFactory только во время запроса?
Дополнительная информация
Если я использую StopFilterFactory в индексации времени, все, как и ожидалось. Когда я запускаю свой запрос, параметры, такие как «из» и «они», отфильтровываются.
Я также проверил функциональные возможности fieldtype text_en с помощью инструмента анализа данных Solr и результаты ожидаются - «из» и «из» отфильтрованы. Это означает, что каким-то образом SearchHandler не позвонил анализатор?
Запрос
http://ip:port/solr/collection1/select?q=*:*&rows=0&facet=true&facet.pivot=year,text
Результаты
[..]
<lst name="facet_pivot">
<arr name="year,text">
<lst>
<str name="field">year</str>
<int name="value">2009</int>
<int name="count">139</int>
<arr name="pivot">
<lst>
<str name="field">text</str>
<str name="value">of</str>
<int name="count">135</int>
</lst>
<lst>
<str name="field">text</str>
<str name="value">the</str>
<int name="count">135</int>
</lst>
<lst>
<str name="field">text</str>
<str name="value">and</str>
<int name="count">123</int>
[..]
Schema.xml
<field name="year" type="int" indexed="true" stored="true" />
<field name="text" type="text_en" indexed="true" stored="true" multiValued="true" />
[..]
<fieldType name="text_en" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPossessiveFilterFactory"/>
<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="lang/stopwords_en.txt" />
<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPossessiveFilterFactory"/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
</fieldType>
Не могли бы вы немного разъяснить, почему ваши стоп-слова часто меняются? Мне интересно, нужен ли здесь другой подход. –