elasticsearch - Elasticsearch 如何分析其中包含 '-'的URL/单词

标签 elasticsearch elasticsearch-5

我正在尝试找出一种分析带有'-'的单词/ URL的方法。例如“nnn999-9-prod-nnn9.test.com” | “Cisco-NX-4”)。

这意味着“nnn999-”将不匹配任何内容,但是“nnn999”或“nnn999- *”将匹配任何内容,但我希望“nnn999-”也能够匹配。

我已经尝试过使用标准分析器和“uax_url_email” token 生成器,但是它们都以相同的方式解析,并给出了相同的 token [“nnn999”,“9”,“prod”,“nnn9”,“test.com”]。我要做的最后一件事是为每个属性(10+)使用正则表达式创建一个自定义分析器。

希望能有所帮助!

最佳答案

开箱即用,具有默认映射,您的示例应该可以正常工作。它将为索引和查询使用相同的标准分析器,因此您对“nnn999-”的查询将转换为“nnn999”。例如:

储存文件

POST my-index/_doc
{
  "test": "nnn999-9-prod-nnn9.test.com"
}

搜索文件
GET my-index/_search
{
  "query": { "match": { "test": "nnn999-" } }
}

结果
{
  "took": 4,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": 1,
    "max_score": 0.2876821,
    "hits": [
      {
        "_index": "my-index",
        "_type": "_doc",
        "_id": "YXnNhGQBFtPd4lycLFbR",
        "_score": 0.2876821,
        "_source": {
          "test": "nnn999-9-prod-nnn9.test.com"
        }
      }
    ]
  }
}

查看索引映射将很有用。

关于elasticsearch - Elasticsearch 如何分析其中包含 '-'的URL/单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51266740/

相关文章:

elasticsearch - Elasticsearch结合了多种条件并按得分排序

elasticsearch - 如何使用盾牌解决Elasticsearch中的[plugin:elasticsearch Authentication Exception]

java - ElasticSearch 抛出 "OutOfMemoryError [unable to create new native thread]"

elasticsearch - 想要从Elasticsearch的点击部分中获得不同的记录

elasticsearch - 如何在Elastic Search中结合过滤器编写嵌套查询?

java - ElasticSearch OOM 有问题,有足够的 RAM 和 ulimits 备用

elasticsearch - [index] 中 VALUE_STRING 的未知键

elasticsearch - Elasticsearch中的模糊搜索给出了顺序错误的匹配项

elasticsearch - Elasticsearch 5.6 multi_match搜索,edge_ngram返回零结果

elasticsearch - 简单查询与一个特定字段不匹配