2013-06-24 55 views
0

我正在使用輪胎,並且我們面臨搜索結果問題。 我們正在尋找'鉛筆'。如果客戶搜索「鉛筆」,則不包括「鉛筆刀」

  • '紅鉛筆' OK
  • '電子卷筆刀' NOT OK不應該包括在結果集中。

這是模型上的輪胎設置:

settings :analysis => { 
      :analyzer => { 
       :my_analyzer => { 
       "tokenizer" => "lowercase", 
       # "filter"  => ["synonym", "porterStem", "phonetic"] 
       "filter"  => ["synonym", "porterStem"] 
       } 
      }, 
      :filter => { 
       :synonym => { 
        "type" => "synonym", 
        "synonyms_path" => "#{Synonym.path}" 
       } 
      } 
      } do 
    mapping do 
     indexes :commodity_code 
     indexes :commodity_name 
     indexes :long_description, analyzer: 'my_analyzer' 
     indexes :short_description, boost: 10, analyzer: 'my_analyzer' 

回答

0

查詢electronic pencil sharpener將默認轉換爲electronic OR pencil OR sharpener

如果要排除包含sharpener的文檔,請使用類似如下的查詢:electronic OR pencil NOT sharpener+electronic +pencil -sharpener

查看boolmatch查詢以在查詢DSL中表達這些條件的條件; https://github.com/karmi/tire/tree/master/test/integration

+0

我們不知道用戶是否輸入'卷筆刀'或'紅鉛筆'...所以我們不知道哪個單詞排除... – Boti