analyzer:
analy:
tokenizer: standard
filter: [ synonym_filter ]
filter:
synonym_filter:
type: synonym_graph
synonyms:
- 'тюб, тюбик'
приводит к:
failed to build synonyms
однако работает вот так:
analyzer:
analy:
tokenizer: standard
filter: [ synonym_filter ]
filter:
synonym_filter:
type: synonym_graph
synonyms:
- 'tub, tubik'
и так:
analyzer:
analy:
tokenizer: whitespace
filter: [ synonym_filter ]
filter:
synonym_filter:
type: synonym_graph
synonyms:
- 'тюб, тюбик'
Но мне необходим именно standard tokeniser, который удаляет знаки препинания. В чем может быть причина и как исправить?
Так же пробовал указывать путь к файлу с синонимами, сохраненный в UTF-8 - такая же ошибка.
С type: synonym аналогичная ситуация. Кстати, в чем разница между ними?
В листинге синтаксис конфига https://github.com/ruflin/Elastica
Версия elasticsearch 6.2.1 - windows 10, 6.2.4 - debian 9
А какая версия PHP и Elastica? И как выглядит сам PHP код, который этот индекс создает?
PHP 7.2, Elastica 6.0.0, friendsofsymfony/elastica-bundle 5.0
сейчас попробую достать запрос к elastic search
Я пробовал, на прямую все работает -
DELETE test
PUT test
{
"analysis": {
"analyzer": {
"analy": {
"tokenizer": "standard",
"filter": [
"synonym_filter"
]
}
},
"filter": {
"synonym_filter": {
"type": "synonym_graph",
"synonyms": [
"тюб, тюбик"
]
}
}
}
}
GET test/_analyze
{
"analyzer": "analy",
"text": ["тюб"]
}
Скорее всего баг в Elastica, если вы код, который воспроизводит проблему пришлете - я могу попробовать его автору переслать.
Извините пожалуйста, я обманул - дал пример и не протестировал его. С ним нет ошибок.
Ошибка была из - за группы синонимов 'шт, штук, № , ном, номер' - видимо как - то связано с тем, что tokenizer: standard не переваривает №
Да, с №
я получаю
{
"error": {
"root_cause": [
{
"type": "illegal_argument_exception",
"reason": "failed to build synonyms"
}
],
"type": "illegal_argument_exception",
"reason": "failed to build synonyms",
"caused_by": {
"type": "parse_exception",
"reason": "Invalid synonym rule at line 2",
"caused_by": {
"type": "illegal_argument_exception",
"reason": "term: № was completely eliminated by analyzer"
}
}
},
"status": 400
}
Это вполне логично
system
(system)
Closed
June 8, 2018, 2:48pm
8
This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.