Добрый день:
У меня есть строковое поле. Я выполняю запрос на совпадение с:
{
query : {
match: {
"grounds": "one"
}
}
}
Когда я выполняю этот запрос, он работает, но, если я поставлю
{
query : {
match: {
"grounds": "one vote"
}
}
}
Не возвращает никаких значений. Имейте в виду, что индекс для grounds
равен one . Мое понимание того, как работает ElasticSearch, состоит в том, что он токенизирует каждое из слов во время запроса и соответствует обратному индексу. Если я ошибаюсь, пожалуйста, посоветуйте.
ОБНОВЛЕНО
Мое определение картографирования для земли:
"grounds": {
"type": "text",
"analyzer": "synonym_analyzer"
},
Как я определяю свой обычай synonym_analyzer
это:
client.CreateIndex(index, c => c
.Settings(s => s.Analysis(
a => a.Analyzers(an => an
.Custom("synonym_analyzer", ca => ca
.Tokenizer("standard")
.Filters("synonym","lowercase")
)
).TokenFilters(t => t.Synonym("synonym", ss => synonyms))
Спасибо.