Проверка орфографии Solr против нечеткого поиска

Я не совсем понимаю разницу между проверкой орфографии apache solr и функциями нечеткого поиска.

Я понимаю, что нечеткий поиск сопоставляет ваш поисковый запрос с проиндексированным значением на основе некоторой разницы, выраженной в расстоянии.

Я также понимаю, что проверка орфографии также дает вам предложения, основанные на том, насколько близко ваш поисковый запрос к значению в индексе.

Так что для меня эти две вещи не так уж отличаются, хотя я уверен, что это связано с моим недостатком в доскональном понимании каждой функции.

Если бы кто-нибудь мог дать объяснение, желательно на примере, я был бы очень признателен.

Спасибо, Боб


person bob dabelina    schedule 01.11.2015    source источник
comment
у кого-нибудь есть отзывы об этом?   -  person bob dabelina    schedule 03.11.2015
comment
удивлен, что никто не отвечает   -  person bob dabelina    schedule 14.07.2016


Ответы (1)


Я не профессионал в Солре, но попробую объяснить.

  1. Нечеткий поиск — это простая инструкция для Solr по использованию своего рода проверки орфографии во время запросов. Стандартный анализатор запросов Solr поддерживает нечеткий поиск, и вы можете использовать его без каких-либо дополнительных настроек, например: roam~ или roam~1. И в этой так называемой проверке орфографии используется алгоритм расстояния Дамерау-Левенштейна или алгоритм редактирования расстояния.
  2. Чтобы использовать проверку орфографии, вам необходимо настроить ее в файле solrconfig.xml (см. здесь). Это дает вам гибкость в реализации проверки орфографии (есть несколько реализаций OOTB), поэтому, например, вы можете использовать другой индекс для проверки орфографии, тем самым уменьшая нагрузку на основной индекс. Кроме того, для проверки орфографии вы используете другой URL: /spell, так что это не поисковый запрос, как нечеткий запрос.

Почему я должен использовать проверку орфографии или нечеткий поиск? Я предполагаю, что это зависит от загрузки вашего сервера, потому что нечеткий поиск дороже и не рекомендуется командой Solr.

P.S. Это мое понимание нечеткости и проверки орфографии, поэтому, если у кого-то есть более правильное и понятное объяснение, пожалуйста, дайте нам совет, как с ними бороться.

person Pavel Artanov    schedule 24.01.2018
comment
Вы случайно не помните источник утверждения, что нечеткий поиск дороже и не рекомендуется командой Solr? Я не спорю, мне просто интересно - person Pavel Vergeev; 20.10.2020
comment
@PavelVergeev привет! Спасибо за ваш ответ. Извините, это было так давно, что я забыл точную ссылку нечеткого дороже..., но в javadoc Lucene:lucene.apache.org/core/7_3_0/core/org/apache/lucene/search/ было сказано, что: более высокие расстояния ( особенно с включенной транспозицией), как правило, бесполезны и будут соответствовать значительной части словаря терминов. Если вы действительно этого хотите, рассмотрите возможность использования метода индексации n-грамм (например, проверка орфографии в модуле предложения). Это не доказательство худшей производительности, но они упомянули об этом. - person Pavel Artanov; 06.11.2020