CommentsTweetPocketElasticsearchにメールアドレスを放り込む際、どうもサブドメイン等でSearchを行う際にうまく検索ができないことがあった。そもそもElasticsearchの検索の仕組みをよく理解できてなかったのもあるのだが、ドキュメント作成時にAnalyzerで分割した文字単位で検索を行うようだ。その差異にデフォルトのAnalyzerではうまくメールアドレスの分割ができていなかったのが原因のようだ。Elasticsearchでは、以下のようにリクエストを投げることでAnalyzerでどのように分割されるのかを見ることができるので、それでメールアドレスがどのように分割されるのか見てみよう。新規で追加するAnalyzerは以下のjsonで作成できるので、これを適当なファイル名(ここではdomain_analyzer.json)でファイルを作成しよう。Linksファイルを作成したら、以下のコマンドで既存のINDEXにAnalyzerを追加する。@domain_analyzer.jsonこれで、指定したINDEXにAnalyzerの追加ができたはずだ。以下のコマンドで、追加したAnalyzerがどのようにパースするのかが確認できる。]}あとは、mappingで特定のフィールドにAnalyzerを追加してやればいいだろう。既存のデータに対しては、後からフィールドにAnalyzerを追加しても意味がないようなので、インデックス化を再度やり直したほうがいいようだ。blacknonインフラエンジニア(...のつもり)。仕事で使うならクライアントはWindowsよりはUNIXの方が好き。Commentコメントをキャンセルメールアドレスが公開されることはありません。