Поиск таких слов, как "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, но обязательно прочитайте все сообщения, так как объясняет поведение поиска приложений), чтобы переопределить сопоставление поиска приложений по умолчанию. Но это немного взломано для производства.

Другие вопросы по тегам