Я испытываю непоследовательный результат поиска по определенному ключевому слову в Solr.Solr: Непонятные результаты поиска
Поведение:
Для примера. Ключевое слово - это «музыка» и содержит 3 документа с индексом, содержащими это ключевое слово.
Выполнение поиска по этому ключевому слову с использованием URL-адреса «http://abc.xyz.com:8983/solr/core3/select/?q=music», он даст единый документ, когда мы снова его ударим, он вернет все три индексированных документа. Снова мы ударим, он вернет один документ. Это то, как непоследовательное поведение происходит последовательно.
Я не могу придумать, что вызывает проблему.
Является ли это Solr cache? Это как-то связано с другой конфигурацией Solr?
Solr Версия: 3.6.1
Важно Конфигурация из solrconfig.xml
<requestHandler name="/select" class="solr.SearchHandler">
<lst name="defaults">
<str name="echoParams">explicit</str>
<int name="rows">50</int>
<str name="df">keywords</str>
</lst>
</requestHandler>
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">db-data-config-xsl.xml</str>
</lst>
</requestHandler>
<filterCache class="solr.FastLRUCache" size="512" initialSize="512" autowarmCount="0"/>
<queryResultCache class="solr.LRUCache" size="512" initialSize="512" autowarmCount="0"/>
schema.xml
</analyzer>
</fieldType>
<fieldtype name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
<fieldType name="date" class="solr.TrieDateField" precisionStep="0" positionIncrementGap="0"/>
<fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0"/>
<fieldType name="sint" class="solr.SortableIntField" sortMissingLast="true" omitNorms="true"/>
<fieldType name="tint" class="solr.TrieIntField" precisionStep="8" positionIncrementGap="0"/>
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="English"/>
</analyzer>
</fieldType>
<fieldType name="shingleString" class="solr.TextField" positionIncrementGap="100" omitNorms="true">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.PositionFilterFactory" />
</analyzer>
</fieldType>
<fieldType name="facet_tex" class="solr.TextField" sortMissingLast="true" omitNorms="true">
<analyzer>
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory" />
<!-- The TrimFilter removes any leading or trailing whitespace -->
<filter class="solr.TrimFilterFactory" />
<!--filter class="solr.PatternReplaceFilterFactory" pattern="([^a-z])" replacement="" replace="all" /-->
</analyzer>
</fieldType>
<fieldType name="facet_comma" class="solr.TextField" sortMissingLast="true" omitNorms="true">
<analyzer>
<tokenizer class="solr.PatternTokenizerFactory" pattern=","/>
<filter class="solr.LowerCaseFilterFactory" />
<!-- The TrimFilter removes any leading or trailing whitespace -->
<filter class="solr.TrimFilterFactory" />
<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
<!--filter class="solr.PatternReplaceFilterFactory" pattern="([^a-z])" replacement="" replace="all" /-->
</analyzer>
</fieldType>
<fieldType name="text_auto" class="solr.TextField">
<analyzer>
<tokenizer class="solr.PatternTokenizerFactory" pattern=","/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.TrimFilterFactory" />
<filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="25" side="front" />
</analyzer>
</fieldType>
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="text_en" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<charFilter class="solr.PatternReplaceCharFilterFactory" pattern="," replacement=" "/>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<charFilter class="solr.PatternReplaceCharFilterFactory" pattern="," replacement=" "/>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="text_en_comma" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<charFilter class="solr.PatternReplaceCharFilterFactory" pattern="," replacement=" "/>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.TrimFilterFactory" />
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="lang/stopwords_en.txt"
enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPossessiveFilterFactory"/>
<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.StopFilterFactory"
ignoreCase="true"
words="lang/stopwords_en.txt"
enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPossessiveFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="alphaOnlySort" class="solr.TextField" sortMissingLast="true" omitNorms="true">
<analyzer>
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.TrimFilterFactory" />
<filter class="solr.PatternReplaceFilterFactory"
pattern="([^a-z])" replacement="" replace="all"/>
</analyzer>
</fieldType>
<fieldType name="text_en_suggest" class="solr.TextField" positionIncrementGap="100" omitNorms="true">
<analyzer type="index">
<tokenizer class="solr.PatternTokenizerFactory" pattern=","/>
<filter class="solr.TrimFilterFactory" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_en.txt" enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPossessiveFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.PatternTokenizerFactory" pattern=","/>
<filter class="solr.TrimFilterFactory" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_en.txt" enablePositionIncrements="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPossessiveFilterFactory"/>
</analyzer>
</fieldType>
</types>
<fields>
<field name="section" type="string" indexed="true" stored="true" multiValued="false" />
<field name="url" type="string" indexed="false" stored="true" multiValued="false" />
<field name="title" type="string" indexed="true" stored="true" multiValued="false" />
<field name="description" type="string" indexed="true" stored="true" multiValued="false" />
<field name="keywords" type="text_en_comma" indexed="true" stored="true" multiValued="true" />
<field name="category" type="facet_comma" indexed="true" stored="true" multiValued="false" />
<field name="robots" type="string" indexed="true" stored="true" multiValued="false" />
<field name="keywords_suggest" type="text_en_suggest" indexed="true" stored="true" multiValued="true" />
</fields>
<copyField source="keywords" dest="keywords_suggest"/>
<uniqueKey>title</uniqueKey>
<defaultSearchField>keywords</defaultSearchField>
<solrQueryParser defaultOperator="AND"/>
бы признателен, если кто-то может вести.
Спасибо, Bhavesh
Несколько вопросов: 1) У вас есть ядро (core3) в качестве заглушки для распределенного запроса? 2) Выполняется ли операция индексирования в фоновом режиме? Вы можете попробовать использовать панель администратора solr, чтобы дать вам подробный анализ того, как документы соответствуют запросу. http://wiki.apache.org/solr/SolrAdminGUI – guruprasath
У меня было настроено несколько ядер, но не для распределенных запросов только для резервного копирования. Я не уверен, как разделять индексы между ядрами. Ответ на ваш первый вопрос: есть только одно ядро, и оно называется core3. Во втором вопросе я выполняю индексирование вручную, нажимая https://abc.xyz.com/solr/core3/dataimport?command=full-import&clean=true. Какую часть я должен сосредоточить на анализе для этой конкретной проблемы? – Bhavesh
1) Сосредоточьтесь на анализе запросов панели администратора ... 2) Вы также можете открыть индексированные файлы в файле corename \ data \ index * .fdt и посмотреть, присутствует ли ваше ключевое слово. Этот индексный файл не будет читаемым человеком, и этот анализ не является доказательством дурака, но для простых документов вы можете увидеть, будет ли ключевое слово повторяться три раза в этом индексе. Также вы можете объяснить, как вы используете ядра для резервного копирования? – guruprasath