Я использую:
- elasticsearch - 1.4.4
- плагин elasticsearch-analysis-morphology - 1.2.0
Я создал свой анализатор, в котором использую "english_morphology" в качестве токен-фильтра.
Проблема:
В elasticsearch добавили запись с текстом "Some text with t char", пробую искать текст с абривеатурой "lng" и elasticsearch выдает мне запись содержащую текст "Some text with t char"
Скрипт для воспроизведения:
#!/bin/sh
curl -XDELETE 'http://localhost:9200/records' && echo
curl -XPUT 'http://localhost:9200/records' -d '{
"settings": {
"analysis": {
"analyzer": {
"test_analizer": {
"type": "custom",
"tokenizer": "standard",
"filter": ["english_morphology"]
}
}
}
}
}' && echo
curl -XPUT 'http://localhost:9200/records/record/_mapping' -d '{
"record": {
"_all" : {},
"properties": {
"text": {
"analyzer": "test_analizer",
"type": "string"
}
}
}
}' && echo
curl -XPUT 'http://localhost:9200/records/record/1' -d '{"text": "Some text with t char"}' && echo
curl -XPOST 'http://localhost:9200/records/_refresh' && echo
curl -XPOST 'http://localhost:9200/records/_search?pretty' -d '{
"query": {
"filtered": {
"query": {
"query_string": {
"default_field": "text",
"query": "lng"
}
},
"filter": {},
"strategy": "leap_frog_filter_first"
}
},
"highlight": {
"pre_tags": ["<em>"],
"post_tags": ["</em>"],
"fields": {"text": {}}
}
}'