2013-03-08 3 views
1

У меня есть индекс около 500 000 документов, и около 10 из этих документов содержат заголовок «на луне» (поле «название») и тег «НАСА» (поле «тег»). Когда я выполняю поиск «на луне nasa», эти документы выходят довольно далеко вниз по списку результатов поиска. Это связано с тем, что поле заголовка не увеличивается, но поле тега немного подкрепляется. Таким образом, другие документы с тегом «nasa» имеют приоритет над документами, которые почти соответствуют всему запросу через поле заголовка.Solr: лучший способ совместить «на луне наса» с «на луну» через запрос фразы?

Однако, хотя Solr не может знать, запрос «на луне nasa» почти совпадает с названием документа «на луне». Если я удалю часть «nasa» из запроса, документы появятся вверху.

Есть ли способ рассказать Solr, чтобы сделать какой-то примерный запрос фразы? Будет ли иметь смысл реализовать какое-то поиск гр-иш через параметр BQ, где я бы расколоть поисковую фразу в словосочетаниях, такие как:

// PHP-ish pseudocode 
$bq[]=title:"at the"^2 
$bq[]=title:"at the moon"^3 
$bq[]=title:"at the moon nasa"^4 
$bq[]=title:"the moon"^2 
$bq[]=title:"the moon nasa"^3 
$bq[]=title:"moon nasa"^4 

ли это смысл вообще, и он будет делать смысл увеличить документы в соответствии с тем, насколько значительная часть запроса совпадает?

ответ

3

Прежде чем что-либо предпринять, попробуйте использовать eDisMax с помощью pf3 parameter. Это делает 3 грамма для вашего автоматически.

Вы также можете быть интересны в недавнем vifun project, который помогает визуализировать эффекты различных параметров.

+0

Доступен ли eDisMax из обычной сборки? Невозможно установить новую версию сейчас. – sbrattla

+0

Да, ediamax включен defualt - см. Http://wiki.apache.org/solr/ExtendedDisMax для получения более подробной информации –

+0

@Alexandre, спасибо за ссылку на vifun, которая выглядит действительно полезной! –