索引前的Elasticsearch转换文档

时间:2016-06-25 09:11:38

标签: elasticsearch indexing transformation

我正在尝试转换一些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" ...

也许我并不清楚过滤器是如何工作的,或者在索引之前可能无法做到这一点,但是对于查询。

0 个答案:

没有答案