Commit 0bf9b28cdb01ab9a80fa0abf7f787f1614fa592c
1 parent
744360b7
Exists in
master
and in
21 other branches
Use dis_max
Showing
2 changed files
with
22 additions
and
6 deletions
Show diff stats
lib/searchkick.rb
@@ -50,11 +50,21 @@ module Searchkick | @@ -50,11 +50,21 @@ module Searchkick | ||
50 | def searchkick_query(fields, term, conversions = false) | 50 | def searchkick_query(fields, term, conversions = false) |
51 | query do | 51 | query do |
52 | boolean do | 52 | boolean do |
53 | - should do | ||
54 | - match fields, term, boost: 10, operator: "and", analyzer: "searchkick_search" | ||
55 | - end | ||
56 | must do | 53 | must do |
57 | - match fields, term, use_dis_max: false, fuzziness: 0.7, max_expansions: 1, prefix_length: 1, operator: "and", analyzer: "searchkick_search" | 54 | + dis_max do |
55 | + query do | ||
56 | + match fields, term, boost: 10, operator: "and", analyzer: "searchkick_search" | ||
57 | + end | ||
58 | + query do | ||
59 | + match fields, term, boost: 10, operator: "and", analyzer: "searchkick_search2" | ||
60 | + end | ||
61 | + query do | ||
62 | + match fields, term, use_dis_max: false, fuzziness: 0.7, max_expansions: 1, prefix_length: 1, operator: "and", analyzer: "searchkick_search" | ||
63 | + end | ||
64 | + query do | ||
65 | + match fields, term, use_dis_max: false, fuzziness: 0.7, max_expansions: 1, prefix_length: 1, operator: "and", analyzer: "searchkick_search2" | ||
66 | + end | ||
67 | + end | ||
58 | end | 68 | end |
59 | if conversions | 69 | if conversions |
60 | should do | 70 | should do |
@@ -95,6 +105,11 @@ module Searchkick | @@ -95,6 +105,11 @@ module Searchkick | ||
95 | type: "custom", | 105 | type: "custom", |
96 | tokenizer: "whitespace", | 106 | tokenizer: "whitespace", |
97 | filter: ["lowercase", "asciifolding", "stop", "snowball", "searchkick_search_shingle"] | 107 | filter: ["lowercase", "asciifolding", "stop", "snowball", "searchkick_search_shingle"] |
108 | + }, | ||
109 | + searchkick_search2: { | ||
110 | + type: "custom", | ||
111 | + tokenizer: "whitespace", | ||
112 | + filter: ["lowercase", "asciifolding", "stop", "snowball"] #, "searchkick_search_shingle"] | ||
98 | } | 113 | } |
99 | }, | 114 | }, |
100 | filter: { | 115 | filter: { |
@@ -123,6 +138,7 @@ module Searchkick | @@ -123,6 +138,7 @@ module Searchkick | ||
123 | settings[:analysis][:analyzer][:searchkick][:filter] << "searchkick_synonym" | 138 | settings[:analysis][:analyzer][:searchkick][:filter] << "searchkick_synonym" |
124 | settings[:analysis][:analyzer][:searchkick_search][:filter].insert(-2, "searchkick_synonym") | 139 | settings[:analysis][:analyzer][:searchkick_search][:filter].insert(-2, "searchkick_synonym") |
125 | settings[:analysis][:analyzer][:searchkick_search][:filter] << "searchkick_synonym" | 140 | settings[:analysis][:analyzer][:searchkick_search][:filter] << "searchkick_synonym" |
141 | + settings[:analysis][:analyzer][:searchkick_search2][:filter] << "searchkick_synonym" | ||
126 | end | 142 | end |
127 | settings | 143 | settings |
128 | end | 144 | end |
test/searchkick_test.rb
@@ -58,8 +58,8 @@ class TestSearchkick < Minitest::Unit::TestCase | @@ -58,8 +58,8 @@ class TestSearchkick < Minitest::Unit::TestCase | ||
58 | end | 58 | end |
59 | 59 | ||
60 | def test_middle_token | 60 | def test_middle_token |
61 | - store_names ["Dish Washer Soap"] | ||
62 | - assert_search "dish soap", ["Dish Washer Soap"] | 61 | + store_names ["Dish Washer Amazing Organic Soap"] |
62 | + assert_search "dish soap", ["Dish Washer Amazing Organic Soap"] | ||
63 | end | 63 | end |
64 | 64 | ||
65 | # ascii | 65 | # ascii |