2

2 つのフィールドがあり、1 つはコピー フィールドです。

  1. <field name="product_name" type="text_wslc" indexed="true" stored="true" required="true" multiValued="false"/>

  2. <field name="dummy_name" type="string_ci" indexed="true" stored="false" required="true" />

その定義を以下に示します

<fieldType name="text_wslc" class="solr.TextField" sortMissingLast="true" omitNorms="true">
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
 <filter class="solr.WordDelimiterFilterFactory"
                                 generateWordParts="1"
                                 generateNumberParts="1"
                                 catenateWords="1"
                                 catenateNumbers="1"
                                 catenateAll="1"
                                 preserveOriginal="1"
                                 />

    <filterclass="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="English" />
                    <filter class="solr.PorterStemFilterFactory"/>
                    <filter class="solr.KStemFilterFactory"/>
                    <filter class="solr.EnglishMinimalStemFilterFactory"/>
                            </analyzer>


    <fieldType name="string_ci" class="solr.TextField" sortMissingLast="true" omitNorms="true">
          <analyzer type="query">
        <tokenizer class="solr.KeywordTokenizerFactory"/>
            <filter class="solr.LowerCaseFilterFactory"/>
            <filter class="solr.SnowballPorterFilterFactory" language="English" />
            <filter class="solr.KStemFilterFactory"/>
            <filter class="solr.EnglishMinimalStemFilterFactory"/>
        </analyzer>
    </fieldType>

提出されたコピーは、正確に一致した結果を最初に取得することです。私のクエリはこのようなものです

/select?q=("ラップトップ+バッグ")&df=製品名&defType=edismax&qf=ダミー名^20000+製品名^0.01

約8000の結果が得られます

しかし、実際の結果は約20000です

 /select?q=(laptop+bag)&df=product_name&defType=edismax&qf=dummy_name^20000+product_name^0.01 

ただし、最初に正確な結果がリストされるわけではありません。この問題を解決するにはどうすればよいですか? クエリに問題はありますか? ここに私のフィールドと定義があります

4

1 に答える 1