(я делаю это с новой копией Elasticsearch 1.5.2)copy_to и пользовательский анализатор не работает
я определил пользовательский анализатор, и это работает:
curl -XPUT 127.0.0.1:9200/test -d '{
"settings": {
"index": {
"analysis": {
"tokenizer": {
"UrlTokenizer": {
"type": "pattern",
"pattern": "https?://([^/]+)",
"group": 1
}
},
"analyzer": {
"accesslogs": {
"tokenizer": "UrlTokenizer"
}
}
}
}
}
}'; echo
curl '127.0.0.1:9200/test/_analyze?analyzer=accesslogs&text=http://192.168.1.1/123?a=2#1111' | json_pp
Теперь я применяю это индекс:
curl -XPUT 127.0.0.1:9200/test/accesslogs/_mapping -d '{
"accesslogs" : {
"properties" : {
"referer" : { "type" : "string", "copy_to" : "referer_domain" },
"referer_domain": {
"type": "string",
"analyzer": "accesslogs"
}
}
}
}'; echo
Из сопоставления я вижу, что оба они применяются.
Теперь я пытаюсь вставить некоторые данные,
curl 127.0.0.1:9200/test/accesslogs/ -d '{
"referer": "http://192.168.1.1/aaa.php",
"response": 100
}';echo
copy_to
И поле, иначе referer_domain
не был сгенерирован и если я пытаюсь добавить поле с таким именем, то токенизатор не применяется либо.
Любые идеи?
В ваших журналах ES есть что-то актуальное, что вы можете нам показать? – Val