2016-11-28 4 views
2

私のドキュメントには、3〜10文の間にある「説明」フィールドがあります。ElasticSearch:曖昧さをサポートするためにmatch_phraseを使用する代わりに

私は、ユーザーからまったく同じ言葉を期待することはできないため、あいまいさをサポートする必要があります。

一方、単語があまりにも遠すぎる場合、ドキュメントは関連しないため、「一致」ではなく「match_phrase」を使用する必要があります。

"match_phrase"は単語を分析しないため、結果として曖昧さがサポートされません。 (最後の段落はhttps://www.elastic.co/guide/en/elasticsearch/guide/master/phrase-matching.htmlを参照してください)。

私はこれらの2つの要件を何らかの形で達成するためにここに創造的な解決策が必要だと思います。おそらく、他の検索クエリを使用します。

答えて

0

'span'クエリで何らかの調査を行った結果、 'span_near'と 'span_multi'を使用して上記の2つの要求を達成できることが分かります。

ここでは、「説明」フィールドで「hello world」を検索する例を示します。

{ 
    "span_near": { 
     "clauses": [{ 
      "span_multi": { 
       "match": { 
        "fuzzy": { 
         "description": { 
          "value": "hello" 
         } 
        } 
       } 
      } 
     }, { 
      "span_multi": { 
       "match": { 
        "fuzzy": { 
         "description": { 
          "value": "world" 
         } 
        } 
       } 
      } 
     }], 
     "slop": 2, 
     "in_order": false, 
     "collect_payloads": false 
    } 
}, 
+0

ニース!あなたはクエリの言葉のいくつかをオプションで作ることができましたか? 、つまりクエリの1/2ワードが欠落していますが、引き続き一致すると見なされます。私は「スロープ」で遊んだりしようとしましたが、結果にどのように影響するかはまだ分かりません。 – OoDeLally

関連する問題