Elasticsearch term query for words contain another word
Elasticsearch term query for words contain another word
我的映射是:
"alarmName" : {
"type" : "string",
"norms" : {
"enabled" : false
},
"analyzer" : "lowercase_analyzer"
}
设置为:
"analysis" : {
"analyzer" : {
"lowercase_analyzer" : {
"filter" : [ "lowercase" ],
"tokenizer" : "keyword"
}
}
}
我用 alarmName = "pro profile" 索引了一些事件。
但是当我查询时:
{
"query" : {
"term" : {
"alarmName" : "pro profile"
}
}
}
我一无所获。
但是对于这个查询:
{
"size" : 0,
"aggs" : {
"alarms" : {
"terms" : {
"field" : "alarmName",
"size" : 100
}
}
}
}
我得到这个结果:
{
"took": 7,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 175023,
"max_score": 0,
"hits": []
},
"aggregations": {
"alarms": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "multi app profile",
"doc_count": 166733
},
{
"key": "not mac profile",
"doc_count": 3755
},
{
"key": "port profile",
"doc_count": 1579
},
{
"key": "not ip profile",
"doc_count": 932
},
{
"key": "not pro profile",
"doc_count": 543
},
{
"key": "not app profile",
"doc_count": 507
},
{
"key": "app profile",
"doc_count": 370
},
{
"key": "mac profile",
"doc_count": 365
},
{
"key": "ip profile",
"doc_count": 114
},
{
"key": "pro profile",
"doc_count": 94
},
{
"key": "not port profile",
"doc_count": 31
}
]
}
}
}
对于 space 的所有其他单词,一切都很好,但是对于这个单词 (pro profile
),我有这个问题。
这是一个错误?
这是因为配置文件包含 pro?
因为我应该搜索 pro profile (with 2 space) 而不是 pro profile (1 space)
那是我的错误
我的映射是:
"alarmName" : {
"type" : "string",
"norms" : {
"enabled" : false
},
"analyzer" : "lowercase_analyzer"
}
设置为:
"analysis" : {
"analyzer" : {
"lowercase_analyzer" : {
"filter" : [ "lowercase" ],
"tokenizer" : "keyword"
}
}
}
我用 alarmName = "pro profile" 索引了一些事件。
但是当我查询时:
{
"query" : {
"term" : {
"alarmName" : "pro profile"
}
}
}
我一无所获。
但是对于这个查询:
{
"size" : 0,
"aggs" : {
"alarms" : {
"terms" : {
"field" : "alarmName",
"size" : 100
}
}
}
}
我得到这个结果:
{
"took": 7,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 175023,
"max_score": 0,
"hits": []
},
"aggregations": {
"alarms": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "multi app profile",
"doc_count": 166733
},
{
"key": "not mac profile",
"doc_count": 3755
},
{
"key": "port profile",
"doc_count": 1579
},
{
"key": "not ip profile",
"doc_count": 932
},
{
"key": "not pro profile",
"doc_count": 543
},
{
"key": "not app profile",
"doc_count": 507
},
{
"key": "app profile",
"doc_count": 370
},
{
"key": "mac profile",
"doc_count": 365
},
{
"key": "ip profile",
"doc_count": 114
},
{
"key": "pro profile",
"doc_count": 94
},
{
"key": "not port profile",
"doc_count": 31
}
]
}
}
}
对于 space 的所有其他单词,一切都很好,但是对于这个单词 (pro profile
),我有这个问题。
这是一个错误?
这是因为配置文件包含 pro?
因为我应该搜索 pro profile (with 2 space) 而不是 pro profile (1 space)
那是我的错误