Мне интересно, могу ли я что-нибудь сделать, чтобы улучшить результат поиска, который я вижу с помощью 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