【发布时间】:2022-07-25 19:07:20
【问题描述】:
Elasticsearch 映射:
"description": {
"type": "text",
"analyzer": "eng_stemmer",
"fields": {
"exact": {
"type": "text",
"analyzer": "exact_lowercase"
}
}
}
分析员:
"eng_stemmer": {
"tokenizer": "standard",
"char_filter": [ "html_strip" ],
"filter": [
"english_possessive_stemmer",
"lowercase",
"english_stemmer"
]
},
"exact_lowercase": {
"tokenizer": "keyword",
"char_filter": [ "html_strip" ],
"filter": [
"lowercase"
]
}
我对 Elasticsearch 比较陌生,并尝试在文本字段中搜索“C/C”。 以下查询似乎不起作用,它返回的结果太多(似乎在'c c'上搜索):
{
"query": {
"query_string": {
"default_field": "description",
"query": "C\\/C"
}
}
}
Elasticsearch 似乎正在从我的搜索查询中删除正斜杠。 我也尝试过使用关键字字段,但收到以下错误消息(因为字段太长?):
Document contains at least one immense term in field=\"description.exact\" (whose UTF8 encoding is longer than the max length 32766), all of which were skipped.
关于如何在分析的文本字段中搜索保留字符有什么想法吗?