我正在尝试找出一种分析带有'-'的单词/ 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"
}
}
]
}
}
查看索引映射将很有用。