2016-05-16 17 views
0

前に私はこの "問題"を得ました。インデックスにmatch_phraseというクエリを実行していました。私が複数の単語の名詞で同じ検索をするまで(私は単名詞を使用する前に、例えば大学など)、すべてが期待どおりでした。私は1つのスペルミスをして、検索がうまくいかなかった(見つからなかった)、単語を削除すると(正確に綴られたものを言う)、検索作業(見つかった)。match_phraseクエリでの不明瞭な動作

設定

PUT index1 
{ 
    "mappings": { 
    "myType": { 
     "properties": { 
     "field1": { 
      "type": "string", 
      "analyzer": "standard" 
     } 
     } 
    } 
    } 
} 

POST index1/myType/1 
{ 
    "field1": "Commercial Banks" 
} 

ケース1:シングル名詞検索

GET index1/myType/_search 
{ 
    "query": { 
    "match": { 
     "field1": { 
     "type": "phrase", 
     "query": "comersial", 
     "fuzziness": "AUTO" 
     } 
    } 
    } 
} 

{ 
    "took": 16, 
    "timed_out": false, 
    "_shards": { 
    "total": 5, 
    "successful": 5, 
    "failed": 0 
    }, 
    "hits": { 
    "total": 1, 
    "max_score": 0.19178303, 
    "hits": [ 
     { 
     "_index": "index1", 
     "_type": "myType", 
     "_id": "1", 
     "_score": 0.19178303, 
     "_source": { 
      "field1": "Commercial Banks" 
     } 
     } 
    ] 
    } 
} 

ケース2:複数名詞の検索

は、ここで私が作った例があります

GET index1/myType/_search 
{ 
    "query": { 
    "match": { 
     "field1": { 
     "type": "phrase", 
     "query": "comersial banks", 
     "fuzziness": "AUTO" 
     } 
    } 
    } 
} 

{ 
    "took": 1, 
    "timed_out": false, 
    "_shards": { 
    "total": 5, 
    "successful": 5, 
    "failed": 0 
    }, 
    "hits": { 
    "total": 0, 
    "max_score": null, 
    "hits": [] 
    } 
} 

したがって、2番目のケースでは、match_phraseクエリを実行するときにドキュメントが見つからないのはなぜですか?私が紛失しているものはありますか? これらの結果は、私が知っていることを疑うだけです。 ファジー検索を間違って使用していますか?これが問題なのかどうか、私はその行動を理解していない人です。

私の質問を読むために多くの事前に感謝します。あなたが私にこれを手伝ってくれることを願っています

答えて

2

フレーズクエリではファジーがサポートされていません。

現在のところ、ESは静かであるため、パラメータを指定することはできますが、サポートされていないという警告は表示されません。この問題を解決するpull request (#18322)issue #7764に関連する)が存在します。 ES 5に統合されると、このクエリはエラーになります。 5.0のためのbreaking changes文書で

、我々はこれはサポートされないことを確認できますfuzzinesscross_fieldsphraseまたはphrase_prefixタイプのために使用されている場合

multi_matchクエリが失敗します。これらのタイプのmulti_matchでは、このパラメータは文書化されておらず、黙って無視されていました。

関連する問題