Fra*_*ois 5 ruby solr ruby-on-rails sunspot sunspot-solr
嗨我一直在我的应用程序中使用普通的rails活动记录LIKE搜索,我开始使用太阳黑子solr搜索.我希望它尽可能接近轨道LIKE搜索.
#sunspot stuff
searchable :auto_index => true, :auto_remove => true do
text :name
end
#sunspot stuff
Run Code Online (Sandbox Code Playgroud)
<fieldType name="text" class="solr.TextField" omitNorms="false">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud)
search_string = "will input some values here"
query = "%" + search_string + "%"
solr_search = Wine.search do
fulltext search_string
end
@solr_search_results = solr_search.results.sort_by{|e| e[:id]}
@rails_search_results = Wine.find(:all, :conditions => ['wines.name LIKE ?' , query]).sort_by{|e| e[:id]}
Run Code Online (Sandbox Code Playgroud)
@solr_search_results
186大储备
688大Plaisir的赤霞珠西拉马尔贝克小维铎品丽珠
760大Vin的布兰克
768大高棉
857总理的Grand Cru
1067大的Classique
1584大餐酒Glenelly
3389大康斯坦斯马斯喀特
3708大特酿香槟
3857大康斯坦斯马斯喀特
@rails_search_results
186 Grand Reserve
688 Grand Plaisir Cabernet Sauvignon Shiraz Malbec Petit Verdot Cabernet Franc
760 Grand Vin Blanc
768 Grand Rouge
857 Premier Grand Cru
969 River Grandeur Cape Blend
972 River Grandeur Cabernet Sauvignon
973 River Grandeur Chardonnay
974 River Grandeur Chenin Blanc
975 River Grandeur Pinotage
976 River Grandeur长相思
977河锦绣设拉子
978河俊宏玫瑰
1067大的Classique
1584大餐酒Glenelly
3389大康斯坦斯马斯喀特
3708大特酿香槟
3857大康斯坦斯马斯喀特
好像Solr中没有发现与他们"尊驰"的条目,只找到了确切火柴?我怎样才能解决这个问题?
@solr_search_results
200 Dassies Rood Cinsaut赤霞珠红宝石赤霞珠
3198 Dassies Rood Cinsaut赤霞珠红宝石赤霞珠
3394 Rood
@rails_search_results
200 Dassies Rood Cinsaut赤霞珠红宝石赤霞珠
483 Roodeberg红赤霞珠
西拉梅鹿辄484 Roodeberg White Sauvignon Blanc Chardonnay Chenin Viognier
1113 Zevenrood
3044 Roodewal
3198 Dassies Rood Cinsaut赤霞珠红宝石赤霞珠
3394 Rood
3477 Roodeberg Red
3478 Roodeberg White
3594 Roodeberg White
3604 Roodeberg Red
同样的事情发生在这里,solr没有找到'Roodeberg'当search_string ='rood'时,它只找到完全匹配
将nGram过滤器添加到schema.xml以进行部分匹配,感谢DanS
但仍未显示所有结果
应用程序/ solr的/ CONF/schema.xml中
<fieldType name="text" class="solr.TextField" omitNorms="false">
<analyzer type="index">
<tokenizer class="solr.LowerCaseTokenizerFactory"/>
<filter class="solr.NGramFilterFactory" minGramSize="3" maxGramSize="15"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.LowerCaseTokenizerFactory"/>
</analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud)
@solr_search_results
130 Merlot
202 Merlot
306 Merlot
336 Merlot
556 Merlot
579 Merlot
592 Merlot
623 Merlot
640 Merlot
689 Merlot
694 Merlot
714 Merlot
776 Merlot
790 Merlot
841 Merlot
865 Merlot
891 Merlot
947 Merlot
1015 Merlot
1045 Merlot
1046 Merlot
1073 Merlot
1075 Merlot
1089 Merlot
1096 Merlot
1111 Merlot
1121 Merlot
1144 Merlot
1145 Merlot
1169 Merlot
@rails_search_results
34 Cavalier Reserve Blend Merlot Cabernet Franc Cabernet Sauvignon Shiraz
129 Matt Black Cabernet Sauvignon Shiraz Merlot Petit Verdot Mourvedre Pinotage
130 Merlot
202 Merlot
240 Grappa Cabernet Merlot Premium
306 Merlot
336 Merlot
416 Dry玫瑰梅洛
477乐团赤霞珠马尔贝克梅洛驾驶室法郎西拉
483 Roodeberg红赤霞珠西拉美乐
556梅洛
579梅洛
592梅洛
614赤霞珠梅洛
623梅洛
640梅洛
656书法梅洛品丽珠长相思
672代恩美乐
689梅洛
694梅洛
696桶选择梅洛
714 Merlot
762私人收藏Merlot
776 Merlot
790 Merlot
795私人收藏Merlot
816 JJ手工葡萄酒Merlot
832金三角Merlot
841 Merlot
842MerlotRosé854Eagle
Crest Cabernet Sauvignon Merlot
865 Merlot
877酿酒师选择Merlot Shiraz
891 Merlot
892 Merlot Reserve
893 Mountain Red Shiraz Merlot
941酒窖选择Merlot Cabernet Sauvignon
943葡萄园选择Cabertnet Sauvignon Merlot Cab Franc Shiraz
947 Merlot
982 Boet Erasmus Cabernet Sauvignon Merlot Malbec Petit Verdot
983 Cara Cabernet Sauvignon Shiraz Merlot
984 Classic Cabernet Sauvignon Shiraz Merlot
1010 Laureat Cabernet Sauvignon Merlot
1015 Merlot
1045 Merlot
1046 Merlot
1073 Merlot
1075 Merlot
1079 Cabernet/Merlot
1089 Merlot
1093 Adelberg Cabernet Sauvignon Merlot
1096 Merlot
1104 Z Collection Cabernet Franc Merlot Cabernet Sauvignon
1111 Merlot
1121 Merlot
1144 Merlot
1145 Merlot
1169 Merlot
1186 Merlot
1254 Cabernet Sauvignon Merlot
1260 Cabernet Sauvignon/Merlot
1261 Merlot
1269 Merlot
1326 Merlot
1349 Cabernet Sauvignon Merlot
1364 C ultivar选择Merlot
1381 Merlot
1384赤霞珠梅洛
1393赤霞珠梅洛
1401赤霞珠梅洛
1404梅鹿辄
1421小赤霞珠梅洛
1424梅
鹿辄1431系列梅洛
1443美乐
1454梅
鹿辄1467扑克山设拉子美乐
1468梅
鹿辄1476美乐
1491环境美乐
1495孔雀岭美乐
1542 Merlot
1543 Merlot
1549 Merlot
1552 Merlot Reserve
1582 Unfiltered Merlot
1592 Merlot
3001 Merlot
3007 Cabernet Sauvignon Merlot
3036 Cabernet Sauvignon Merlot
3056 Merlot
3067 Kosher Merlot
3073 Organic Merlot
3079 Premium Merlot
3091 Merlot
3106 Merlot with a dash of Malbec
3133 Cabernet Sauvignon Merlot
3143 Five Climates Merlot
3154保留No1 Merlot
3182 Lanoy赤霞珠梅洛
3183储备系列Cab Sauv Merlot Cab Franc
3200 Merlot
3236 Giorgio Cabernet Sauvignon Merlot Petit Verdot Shiraz
3258 Danie De Wet Cabernet Sauvignon Merlot
3276 Red Cabernet Sauvignon Merlot Cab Franc Petit Verdot Shiraz
3288 Merlot
3303 Quartet Pi 标记赤霞珠梅洛西拉
3307多样性梅洛马尔贝克
3311葡萄园创作梅
鹿辄3318 Caapmans赤霞珠梅洛
3321 Luipaardsberg梅鹿辄
3322梅洛
3326 Rhinofields梅洛
3334梅鹿辄
3343梅鹿辄
3363梅洛赤霞珠
3372梅鹿辄
3390梅鹿辄
3416 R 62美乐赤霞珠
3418 Unplugged 62梅洛
Rosé3419 Unplugged 62 Merlot Shiraz
3431 Merlot
3439 KC Cabernet Sauvignon Merlot
3471 Orchestra Cabernet Sauvignon Malbec Merlot Cab Franc Shiraz
3497 Merlot
3498 Merlot Cabernet Sauvignon
3510 Merlot
3531 Merlot
3540 Merlot
3560 Merlot
3568 Merlot Rose
3578特别版Merlot
3581 Merlot
3584 Cabernet Sauvignon Merlot
3624 Merlot
3642 Cellot Selecti on Merlot
3657 Merlot
3677 Merlot
3681 Merlot
3685 Series C Cabernet Sauvignon Merlot Cab Franc
3693 Merlot
3728 Alexanderfontein Merlot
3755 Peacock Ridge Merlot
3771 The Old Museum Merlot
3773 Cellar Selection Cabernet Sauvignon Merlot
3820 Merlot
3859 Merlot
3882 Dunstone Merlot
3900 Duckitt Me rlot Cabernet Sauvignon
3919 Merlot
3947 Merlot
固定的!似乎 Solr 默认情况下只显示 30 个条目,因此它只显示最相关的匹配项,并跳过了我也想要的其他匹配项。
我添加了这个文件
myapp/config/initializers/sunspot_solr.rb
Sunspot.config.pagination.default_per_page = 3000
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2048 次 |
| 最近记录: |