2017-04-22 37 views
0

パイプ "|"の解析に問題があります。キャラクターレコードに特殊文字がある場合、結果データはありません。私のクエリElasticSearchの特殊文字の解析

{ 
    "query": { 
    "bool": { 
     "must": [ 
     { 
      "term": { 
      "username": "john|[email protected]" 
      } 
     } 
     ], 
     "must_not": [], 
     "should": [] 
    } 
    }, 

の下には私が使用"tokenizer":"uax_url_email"を試してみましたが、

+0

は、あなたが正確な用語と一致する必要があります例の文書を提供することができます( '・ジョン| DOEする@ group.net') ? – avr

+0

私はjohn|[email protected]のようなユーザー名を含むデータベーステーブルを持っています。これを上記のクエリ経由でelasticsearhを使って選択する必要があります。 thats all –

+0

ES 5.xを使用し、 'username'フィールドのデフォルトマッピングを使用している場合、' 'username": "john|[email protected]" 'を' "username.keyword": "john | doe @ group.net "とそれが動作するはずです。 – avr

答えて

1

を働いていないことはQUERY_STRINGを使用しよう、デフォルトの標準アナライザ と私のシステムでテストして、QUERY_STRINGでその作業.Iを試してみてください。そのESの一部の検索では非常に強力な、私の答えをチェックしlink: -

: -

{ 

    "query": { 
    "query_string": { 
     "fields" : ["username"] , 
     "query": "john|[email protected]" 
    } 
    } 
}