【问题标题】:String query of unicode (emoji) character in Elastic SearchElastic Search 中 unicode (emoji) 字符的字符串查询
【发布时间】:2015-12-30 22:20:57
【问题描述】:

我的 ES 索引中有一些包含表情符号图标的文章。我想搜索包含特定表情符号字符的文章。我使用 compose.io 作为我的 ES 提供程序,通过 ElasticHQ 我可以看到数据中的表情符号 - 它们在 OS X 中呈现为图标,所以我假设 unicode 存储正确。但是,当我运行此查询时,我没有得到任何结果。如果我运行纯文本搜索,我会得到我的结果。我正在使用 mongoosastic。

Article.search({query_string: {query: "????"}},
            {fields: "title"}, 
            function(err, results) {
            if (err) {
                console.log("error: " + err);
            } else {    
                console.log("results: " + JSON.stringify(results));         
            }
        });

//results: {"took":6,"timed_out":false,"_shards":{"total":5,"successful":5,"failed":0},"hits":{"total":0,"max_score":null,"hits":[]}}

【问题讨论】:

  • 潜在相关:stackoverflow.com/questions/19773786/…。 (使用分析 API 进行测试:elastic.co/guide/en/elasticsearch/reference/1.4/…)。
  • 谢谢彼得,我得到以下信息: curl -XGET -u dev-user:pass123 'foo.com:10724/_analyze?analyzer=standard' -d 'foo' {"tokens":[{"token":"foo" ,"start_offset":0,"end_offset":3,"type":"","position":1}]} curl -XGET -u dev-user:pass123 'foo.com:10724/_analyze?analyzer=standard' -d '? ???' {"tokens":[]} 这对我来说意义不大。我假设我需要安装某种可以处理 unicode 的分析器?
  • 听起来(来自 Solr 帖子)Lucene 标准分析器可能不会将 emoji 范围解释为有效的 Unicode 字符(并将它们去除)。
  • 感谢您的意见。我在 elastic.co 论坛上进行了一些对话,是的,标准分析器不能做这种事情。我现在所做的(等待编写我自己的分析器)是将表情符号编码为字符串并将它们编入索引。
  • 酷。打算建议快速修复! (确保为您的编码使用一个新字段,以便您可以单独提升它们。)如果您最终选择修补 Lucene,请考虑提供补丁。

标签: node.js elasticsearch mongoosastic


【解决方案1】:

是的,看起来 ElasticSearch 也不能直接启用搜索表情。另外,我尝试使用相应的 unicode 值,但这似乎也不起作用。可能将原始 unicode 值转换为字符串会有所帮助。

【讨论】:

    猜你喜欢
    • 2018-08-17
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    • 2018-09-18
    • 2010-10-01
    • 2021-03-22
    • 2014-12-03
    • 2021-11-27
    相关资源
    最近更新 更多