簡體   English   中英

Solr搜索未返回完全匹配

[英]Solr search does not return exact match


我正在使用Solr 6來實現搜索引擎。 我面臨的問題是,當我搜索該單詞時,它會首先返回其他一些結果,而實際查詢的數字是6。
例如,我正在搜索Cafe 9
這回我...

  • NECOS天然商店和咖啡館
  • SATTAR BUKSH咖啡廳
  • 粉色卡迪拉克咖啡廳和餐廳
  • 咖啡館岩石拉合爾
  • 咖啡館首席扎克爾
  • 咖啡館9


  • 我想要的是它在第9位顯示Cafe 9 ,然后在第9位顯示其他結果是完全匹配。



    我已經用text_general類型索引了所有字段,並附加了schema.xml。

    提前致謝。

      <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" /> <!-- in this example, we will only use synonyms at query time <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/> --> <filter class="solr.ApostropheFilterFactory"/> <filter class="solr.ShingleFilterFactory" maxShingleSize="5" outputUnigrams="true"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" /> <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> <filter class="solr.ApostropheFilterFactory"/> <!-- <filter class="solr.ShingleFilterFactory" maxShingleSize="5" outputUnigrams="true"/> --> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType> 

    如果要提高包含所有查詢詞的文檔的分數,則可以將pf參數與字段名的值一起傳遞。 在您的情況下,您應該傳遞pf=namepf表示短語字段)。 eDisMax查詢解析器將嘗試從q參數中的所有術語中進行詞組查詢,如果能夠在任何詞組字段中找到確切的詞組,則它將指定的提升應用於該文檔的匹配項。

    如果您默認情況下不使用eDisMax查詢解析器,則可以通過傳遞q={!edismax pf=name}cafe 9暫時將其用於當前查詢。

    您還可以傳遞pf2參數(如在pf2=name ),該參數的工作方式與pf相似,只是所生成的短語查詢是查詢中的雙字母組 (即,每兩個連續的術語將被視為增強短語)。 如果恰好是您要尋找的,還有一個pf3參數。

    您還可以自定義增強功能,並將多個字段名稱傳遞給短語接近性參數(例如pf=name^2 title^3 )。

    暫無
    暫無

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

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