2014-01-11 4 views
1

Я пытаюсь выполнить поиск текста в словарных определениях, которые хранятся в массиве каждого слова. Что я хочу сделать, так как у вас есть следующие условия, которые будут оцениваться выше:Релевантность тюнинг solr полнотекстовый поиск по ключевому слову позиция + появление?

  1. Если ключевое слово появляется в начале определений, запись должна быть ранжирована выше.
  2. Если определение полностью соответствует ключевому слову, запись должна быть ранжирована выше.
  3. Если ключевое слово появляется чаще в определениях, запись должна быть ранжирована выше.

Например, «автомобиль».

Слово1:

  1. автомобилей
  2. Автомобиль
  3. автобус

Слово 2:

  1. Парковка автомобиля
  2. Carpark

Слово 3:

  1. Маленький автомобиль

Ранжирование должен возвращать Слово1, а затем слово 3, то слово 2.

Как бы это реализовать с Solr, если все возможно? Если нет, то какие у меня варианты для такого поиска?

+0

Почему Word 3 следует за Словом 2? –

+0

«автомобиль» - это второе слово в «маленькой машине», где, как и в слове 2, «парковка автомобиля» занимает 3-е место. – redshift5

ответ

0

Я только проанализировал это в академическом порядке, поэтому не могу ответить на мой ответ с опытом.

Посмотрите на Payloads в Solr. Грант Ingersoll объясняет это на базовом уровне, и в статье есть тесты, похожие на ваш прецедент.

Spanquery также стоит проверить, но не уверен, соответствует ли он используемому случаю, который вы описываете.

Отправляйте сообщения с экспериментами/опытом.

Смежные вопросы