簡體   English   中英

Solr:搜索結果不一致

[英]Solr : Inconsistent search results

我在Solr中遇到特定關鍵字的搜索結果不一致。

行為:

例如,關鍵字是“音樂”,並且包含3個包含此關鍵字的文檔。

使用URL“ http://abc.xyz.com:8983/solr/core3/select/?q=music ”使用此關鍵字執行搜索,當我們再次點擊它時將提供單個文檔,它將返回所有三個索引文檔。 我們再次點擊它將返回單個文檔。 這是一致發生的不一致行為的方式。

我無法想到造成這個問題的原因。

它是Solr緩存嗎? 它與其他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

檢查你的param timeAllowed ,它可以在solrconfix.xml中的某個處理程序中描述

還有問題:你的指數有多大? 在你的solrconfix.xml和scheme.xml文件中查看docs文件是多么容易。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM