2016-01-05 63 views
5

私はelasticsearchでテキストを含む絵文字/絵文字を検索しようとしています。以前は、私はツイートをESに挿入しました。今、私は、笑顔や悲しい顔のつぶやきなどを探しています。私は以下を試したelasticsearchで絵文字/絵文字を検索するには?

1)笑顔のユニコード値に相当するものを使用しましたが、動作しませんでした。結果は返されませんでした。

GET /myindex/twitter_stream/_search 
{ 
    "query": { 
    "match": { 
     "text": "\u1f603" 
    } 
    } 
} 

elasticsearchで絵文字検索を設定するにはどうすればよいですか?弾力検索に摂取する前に生のつぶやきをエンコードする必要がありますか?クエリは何でしょうか?経験豊富なアプローチ?ありがとう。

答えて

1

私は絵文字を見たことがありますが実際に文字列は、データベースに格納するときに画像の代わりに格納されます。たとえば。笑顔は「笑顔」として保存されます。あなたはあなたのケースでそれを確認することができます。このような場合は、コロンでトークン化しないカスタムトークナイザを追加して、エモーティコンと完全に一致させることができます。それから検索の間、あなたは単に検索の顔文字イメージを適切な文字列に変換する必要があり、elasticsearchはそれを見つけることができます。それは

6

を役に立てば幸いspecification絵文字を検索する方法を説明します。

検索中には、両方のクエリでの絵文字を探し、そして がターゲットで絵文字を見つけることが含まれます。これらは、アノテーションがシノニムまたはヒントとして含まれている場合に最も便利です( )。たとえば、 人がyelp.comでsearchesを検索すると、「ガス 駅」の一致が表示されます。逆に、検索エンジンで「ガスポンプ」を検索すると、 はcontainingを含むページを見つけることができます。

注釈は言語固有です:yelp.deで検索すると、誰かが の検索で "Tankstelle"の検索結果が得られます。

実際のユニコードをそのまま使用して、サポートする言語ごとに注釈を付けることができます。

これは、シノニムフィルタで行うことができます。しかし、Elasticsearch標準のトークナイザでは、絵文字が削除されるので、やるべきことがたくさんあります。

  • emoji修飾語を削除してすべてをクリーンアップします。
  • トークンを空白で区切ります。
  • 望ましくない句読点を削除します。
  • 絵文字を同義語に展開します。

全体のプロセスについては、http://jolicode.com/blog/search-for-emoji-with-elasticsearch(免責事項:著者)です。

関連する問題