【问题标题】:ElasticSearch parsing special charactersElasticSearch 解析特殊字符
【发布时间】:2017-04-24 14:14:13
【问题描述】:

我在解析管道“|”时遇到问题elasticsearch 中的字符。当记录有任何特殊字符时没有结果数据。在我的查询下方

{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "username": "john|doe@group.net"
          }
        }
      ],
      "must_not": [],
      "should": []
    }
  }, 

我尝试使用"tokenizer":"uax_url_email",但不起作用

【问题讨论】:

  • 您能否提供一个与确切术语(john|doe@group.net)匹配的示例文档?
  • 我有一个数据库表,其中包含像 john|doe@group.net 这样的用户名,我需要通过上面的查询使用 elasticsearh 选择它。就这些
  • 如果您使用 ES 5.x 和字段 username 的默认映射,则将这一行 "username": "john|doe@group.net" 替换为 "username.keyword": "john|doe@group.net" 并尝试它应该可以工作。
  • 我使用 ES 2.4 ;/
  • 字段username的映射是什么?如果是not_analyzed字段那么是否可以做成not_analyzed字段?

标签: database elasticsearch


【解决方案1】:

尝试使用 query_string,它的工作原理。我已经在我的系统中使用默认标准分析器进行了测试 尝试使用 query_string 。它在 ES 中的部分搜索中非常强大,请查看我的答案 link :-

:-

{ 

  "query": {
    "query_string": {
       "fields" : ["username"] ,
      "query": "john|doe@group.net"
    }
  }
}

【讨论】:

    猜你喜欢
    • 2011-05-03
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    • 2012-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-16
    相关资源
    最近更新 更多