我正在尝试转换一些elasticsearch文档,然后使用自定义过滤器将它们索引到我的索引中。我的目的是在索引文档之前用另一个字符串替换字符串模式(在这种情况下,它是' a' u' u')。这是索引定义:
PUT index_8
{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0,
"index": {
"analysis": {
"char_filter": {
"my_pattern": {
"type": "pattern_replace",
"pattern": "a",
"replacement": "u"
}
},
"analyzer": {
"my_analyzer": {
"tokenizer": "keyword",
"char_filter": [
"my_pattern"
]
}
}
}
}
},
"mappings": {
"my_type": {
"properties": {
"test": {
"type": "string",
"analyzer": "my_analyzer"
}
}
}
}
}
如果我插入这样的文档,然后我尝试检索它,我得到:
curl -XPUT 'localhost:9200/index_8/my_type/1' -d '{ "test" : "aaaa" }'
curl -XGET 'localhost:9200/index_8/my_type/1?pretty=true'
{
"_index" : "index_8",
"_type" : "my_type",
"_id" : "1",
"_version" : 4,
"found" : true,
"_source" : {
"test" : "aaaa"
}
}
你可以看到"测试"字段是完整的,你应该看到" uuuu" ...
也许我并不清楚过滤器是如何工作的,或者在索引之前可能无法做到这一点,但是对于查询。