Улучшение результатов поиска с помощью solr + sunspot - PullRequest
1 голос
/ 20 февраля 2012

Мне интересно, могу ли я что-нибудь сделать, чтобы улучшить результат поиска, который я вижу с помощью solr.

У меня есть модель продукта с текстовым полем «имя» со значением «The Glenlivet 18 year».

У меня есть этот блок поиска в моей модели продукта:

searchable do
  text :name
end

Когда я ищу «Односолодовый виски Glenlivet 18 Yar. 750ML», я получаю ноль результатов.

1.9.3-p0 :001 > Product.search { fulltext "The Glenlivet Single Malt Scotch 18 Yr. 750ML"}.results
=> []

Похоже, мне нужно действительно вывести поисковый запрос, чтобы получить результат, что не очень полезно.

1.9.3-p0 :002 > Product.search { fulltext "The Glenlivet 18 Yr. 750ML"}.results
=> []

1.9.3-p0 :006 > Product.search { fulltext "The Glenlivet Single Malt 18"}.results
=> []

Это действительно выглядит так, как будто это должно работать.

1.9.3-p0 :003 > Product.search { fulltext "The Glenlivet 18 Yr."}.results
=> []

Тогда наконец

1.9.3-p0 :007 > Product.search { fulltext "Glenlivet 18"}.results
Product Load (0.2ms)  SELECT `products`.* FROM `products` WHERE `products`.`id` IN (8)
=> [#<Product id: 8, name: "The Glenlivet 18 year"] 

Это все настройки по умолчанию в solr, которые создает гем sunspot_solr,Вот мои файлы конфигурации:

С такими результатами это в значительной степени противоречит цели полнотекстового поиска.Есть ли какие-либо настройки, которые я могу настроить, или что-нибудь еще, что я могу сделать, чтобы эти результаты не выглядели такими строгими?

Редактировать:

Добавление :minimum_match => 4 и установка синонимов, кажется, обеспечиваютрезультаты, которые я хочу.

Product.search { fulltext "The Glenlivet Single Malt Scotch 18 Yr. 750ML", :minimum_match => 4}.results 

1 Ответ

1 голос
/ 20 февраля 2012

Убедитесь, что ваше поле Fullext рассматривается как текст, а не строка, а затем посмотрите на настройку минимального соответствия:

http://wiki.apache.org/solr/DisMaxQParserPlugin#mm_.28Minimum_.27Should.27_Match.29

Также вам может понадобиться синоним для приравнивания года и года.

...