Commit 0bf9b28cdb01ab9a80fa0abf7f787f1614fa592c

Authored by Andrew Kane
1 parent 744360b7

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 &lt; Minitest::Unit::TestCase @@ -58,8 +58,8 @@ class TestSearchkick &lt; 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