2016-07-15 4 views
2

フィールドtitleの値がbrown foxの文書を、キーワードbrownfoxで検索して照合したいとします。私もぼやけやオペレータandmatch問い合わせてみましたElasticsearch - 検索キーワードにスペースがない場合、フレーズ一致フレーズを使用する方法は?

curl -XGET 'http://localhost:9200/haystack/_search?pretty' -d '{ 
    "query" : { 
     "fuzzy" : { 
      "title": { 
       "value": "brownfox", 
       "fuzziness": 2, 
       "prefix_length": 0, 
       "max_expansions": 10000 
      } 
     } 
    } 
}' 

:このfuzzyクエリをしようとすると

は、私は結果を取得しない

curl -XGET 'http://localhost:9200/haystack/_search?pretty' -d '{ 
    "query": { 
     "match": { 
     "title": { 
      "query":  "brownfox", 
      "fuzziness": "AUTO", 
      "operator": "and" 
     } 
     } 
    } 
}' 

これは、類似したキーワードで結果を返すのではなく、タイトルがbrown foxの文書で、これは私がよりよくマッチすると考えるでしょう。

私はthisの質問への回答も読んでいますが、フィールドのアナライザーを同義語で更新するオプションはありません。他の同様のケースにもマッチしたいので、空白と間違ったスペル言葉。

ありがとうございます!

+0

その 'title'フィールドのマッピングはなんですか?少なくとも、「茶色のキツネ」を単一の用語として保持するアナライザが必要です。 'standard'アナライザを使用している場合や、' brown fox'をまったく保持していないものは、それにマッチすることはできません。 –

+0

ええ、私はスペースの有無にかかわらずインデックスを作成する必要があるのではないかと恐れています。何らかの理由で、私はLevenshtein Edit Distanceを使って一致させるという印象を受けました。 – fips

+0

それを使用していますが、見ている用語は 'brown'と' fox'です。あなたは 'ブラウンキツネ'を見たいと思う。 –

答えて

1

titleフィールドのマッピングには少なくとも、"brown fox"を単一の用語として保持するアナライザが必要です。 standardアナライザを使用している場合や、brown fox全体を保持していないものを使用している場合は、一致することはできません。

関連する問題