我的索引包含以下字段:
"Id":{"type":"string","analyzer":"string_lowercase"} // guid for example
在elasticsearch.yml:
index:
analysis:
analyzer:
string_lowercase:
tokenizer: keyword
filter: lowercase
但是像这样过滤
{
"filter": {
"term": {
"Id": "2c4294c2-ca84-4f69-b648-8a014ff6e55d"
}
}
}
不适用于整个guid值,只有部分(“2c4294c2”,“ca84”,..)
有趣的是,在其他机器上它可以正常使用相同的配置。
答案 0 :(得分:1)
您无法通过elasticsearch.yml添加自定义分析器。有一个用于添加自定义分析器的REST API。根据您的要求,以下是必需的命令:
PUT <index name>
{
"settings": {
"analysis": {
"analyzer": {
"string_lowercase": {
"type": "custom",
"tokenizer": "keyword",
"filter": "lowercase"
}
}
}
}
}