我试图在elasticsearch中搜索包含文本的表情符号/表情符号.早些时候,我在ES中插入了推文.现在我想搜索微笑或悲伤面孔相关的推文.我尝试了以下内容
1)使用相当于微笑的unicode值,但没有用.没有返回任何结果.
GET /myindex/twitter_stream/_search { "query": { "match": { "text": "\u1f603" } } }
如何在elasticsearch中设置表情符号搜索?是的,我必须在输入弹性搜索之前对原始推文进行编码?什么是查询?有经验的方法吗?谢谢.
该规范解释了如何搜索的表情符号:
搜索包括在查询中搜索表情符号字符,以及在目标中查找表情符号字符.当它们将注释包含为同义词或提示时,它们最有用.例如,当有人在yelp.com上搜索,时,他们会看到"加油站"的匹配项.相反,在搜索引擎中搜索"气泵"可以找到包含⛽︎的页面.
注释是特定于语言的:在yelp.de上搜索,有人会期望搜索⛽︎以导致"Tankstelle"的匹配.
您可以保留真正的unicode char,并将其扩展为您希望支持的每种语言的注释.
这可以使用同义词过滤器完成.但是Elasticsearch标准tokenizer将删除表情符号,所以还有很多工作要做:
删除表情符号修饰符,清理一切;
通过空格标记;
删除不需要的标点符号;
将表情符号扩展为他们的同义词.
整个过程在这里描述:http://jolicode.com/blog/search-for-emoji-with-elasticsearch(免责声明:我是作者).