2017-10-02 7 views
0

商品カタログでうまく機能するクエリがあります。私のクエリは現在multi_matchで曖昧さを利用していますが、同じクエリ(曖昧さがない)が結果を返さなかった場合、検索では曖昧さオプションを利用することをお勧めします。これはクエリ内で可能ですか?ここでElasticSearch - 結果がない場合はもう一度クエリを実行します。

(Railsの5を使用することで)私の現在のクエリです:

@products = Product.search(
     query:{ 
     function_score:{ 
      query:{ 
      bool:{ 
       must:{ 
       multi_match:{ 
        fields: ['brand^10', '_all'], 
        query: "#{query}", 
        fuzziness: "AUTO" 
       } 
       }, 

       filter:{ 
        bool:{ 
        must:filters 
        } 
       } 

      } 
      }, 
      field_value_factor:{ 
       field: "popularity", 
       modifier: "log1p", 
       factor: 0.5 

      }, 
      boost_mode: "sum" 
     } 
     }).page(page).per(25) 

答えて

0

私は、多くの場合、2つの試合の句、私は係数2でスコアを後押ししていたファジーのないものとブールクエリを使用している何ファジィ・マッチでは3回、ファジィ・マッチでは試してみるが、スコアが低いのでリストの最後になる。

私はthis gistと同様のものを示しました。

DELETE user 
POST user/doc 
{ 
    "name": "David" 
} 
GET user/_search 
{ 
    "query": { 
    "bool": { 
     "should": [ 
     { 
      "match": { 
      "name": { 
       "query": "david", 
       "boost": 3.0 
      } 
      } 
     }, 
     { 
      "match": { 
      "name": { 
       "query": "david", 
       "fuzziness": 2 
      } 
      } 
     } 
     ] 
    } 
    } 
} 
GET user/_search 
{ 
    "query": { 
    "bool": { 
     "should": [ 
     { 
      "match": { 
      "name": { 
       "query": "dovad", 
       "boost": 3.0 
      } 
      } 
     }, 
     { 
      "match": { 
      "name": { 
       "query": "dovad", 
       "fuzziness": 2 
      } 
      } 
     } 
     ] 
    } 
    } 
} 
+0

あなたは一例をしてください提供できます

基本的には何が好きですか? –

+0

回答が更新されました。 HTH – dadoonet

関連する問題