Поиск таких слов, как "C#", с помощью поиска приложений
Мы используем Elasticsearch в сочетании с поиском приложений для поддержки поисковых страниц нашего сайта. Мы столкнулись с проблемой, когда мы заметили, что не можем искать такие ключевые слова, как "C#", "C++" и им подобные. Есть ли у кого-нибудь совет, как решить эту проблему?
1 ответ
Привет, конечно, поиск приложений по умолчанию использует стандартный токенизатор, который создает только токен "C" для "C#" и "C++".
POST _analyze
{
"text": "C++",
"tokenizer": "standard"
}
=>
{
"tokens" : [
{
"token" : "C",
"start_offset" : 0,
"end_offset" : 1,
"type" : "<ALPHANUM>",
"position" : 0
}
]
}
Вы можете попробовать использовать решение, представленное в этом блоге https://medium.com/@joecwu/elastic-app-search-360f0eba04bf (Hacking: Custom our own index settings parts, но обязательно прочитайте все сообщения, так как объясняет поведение поиска приложений), чтобы переопределить сопоставление поиска приложений по умолчанию. Но это немного взломано для производства.