首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从elasticsearch排除包含特殊字符的结果

从elasticsearch排除包含特殊字符的结果
EN

Stack Overflow用户
提问于 2016-07-13 15:45:21
回答 1查看 1.1K关注 0票数 2

我已经找了很多答案,但什么都找不到,所以这是我的问题,我有一个字段“名称”类型字符串的索引,我用match_phrase做了一个简单的全文搜索,但这个字段有时是由逗号、点、斜杠或连字符分隔的几个单词组成的字符串复合词,例如"engineer,operator,maintenance“。我需要排除这些结果,例如,如果我有下一个名称:

  1. 工程师,操作员,维修
  2. “工程师”
  3. “工业工程师

如果我搜索"engineer",我想得到最后两个结果,然后导出第一个结果。我试着用这样的“禁止”条款:

代码语言:javascript
运行
复制
"query": {
  "bool": {
    "must": {
      "match_phrase": {
        "name": "Vendedor"
      }
    },
    "must_not":{
      "match":{
        "name": "\."
      }
    }
  }
}

我也尝试使用正则表达式,但是它总是给出错误字符的结果:

代码语言:javascript
运行
复制
"must_not":{
      "regexp":{
        "name": ".*[\-\.\/\.].*"
      }
    }

我做错了什么,或者怎样才能完成这项任务?

EN

回答 1

Stack Overflow用户

发布于 2016-07-13 16:10:24

在索引设置中,您可以添加一个char筛选器和类似的模式,但是您需要重新索引,请在这里查看更多详细信息https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-pattern-analyzer.html

代码语言:javascript
运行
复制
              "char_filter": {
                  "pattern": {
                     "pattern": "\\W+",
                     "type": "pattern_replace",
                     "replacement": " "
                  },
                  "html": {
                     "type": "html_strip"
                  }
               }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38356272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档