2016-12-16 8 views
0

私が現時点で直面している主な課題の1つは、それらにぼかしを適用する長い文字列をどのように一致させるかです。どのように長い文字列に一致させることができますか?

"match": { 
      "name": { 
       "query": "longnameyesverylong", 
       "fuzziness": 2 
      } 

私はそれを見つけることができますが、私:私は次のようにその名前にあいまい検索を、適用した場合

PUT my_index/type/2 
{ 
    "name":"longnameyesverylong" 
} 

たとえば、我々は次のドキュメントを持っているとしましょう目標はネットを開き、このタイプの文字列に2つ以上の間違いを許すことです。曖昧さが2より大きく、それがESでサポートされていないよう

PUT my_index/type/2 
{ 
    "name":"l1ngnam2yesver3long" 
} 

前回のマッチクエリは、この文書を見つけることができなくなります。

はさんのようなIインデックス何かがあること、たとえばましょう。

ngramsを使用しようとしましたが、トークンが要件を満たさず、インデックスが大きくなりすぎました。

私は私の頭の上に持っている唯一のオプションは、検索時に、私の「自分のトークナイザの」インデックス作成時に手動で文字列を分割し、その後

PUT my_index/type/2 
    { 
     "name":"longnamey esverylong" 
    } 

などに見える文書を作成することです文字列を再び分割し、各トークンに曖昧性のあるブール検索を適用します。これはおそらく私が必要とすることをすることができますが、おそらくこの問題のためのよりよい解決策があると感じています。

他にも適切と思われるアプローチはありますか?

ありがとうございます。

+0

どのようなバージョンの弾性検索を使用していますか? – root545

+0

@ root545 2.xを使用しています – Yeikel

答えて

0

問題を解決しました。この問題の鍵は、pattern_captureフィルタです。

関連する問題