From 9507809f4135ca913c6b0a0a8c55316ba8653a51 Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Tue, 16 Jul 2013 01:49:07 -0700 Subject: [PATCH] Better synonyms --- README.md | 2 +- lib/searchkick.rb | 2 +- lib/searchkick/search.rb | 2 +- test/searchkick_test.rb | 12 ++++++------ 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 7e1e01b..96833bd 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ Product.search "2% Milk", facets: [:store_id, :aisle_id] ```ruby class Product < ActiveRecord::Base - searchkick synonyms: ["scallion => green onion"] # TODO Ruby syntax + searchkick synonyms: [["scallion", "green onion"], ["qtip", "cotton swab"]] end ``` diff --git a/lib/searchkick.rb b/lib/searchkick.rb index e9f29bc..7958f40 100644 --- a/lib/searchkick.rb +++ b/lib/searchkick.rb @@ -53,7 +53,7 @@ module Searchkick custom_settings[:analysis][:filter][:searchkick_synonym] = { type: "synonym", ignore_case: true, - synonyms: synonyms + synonyms: synonyms.map{|s| s.join(" => ") } } custom_settings[:analysis][:analyzer][:default_index][:filter] << "searchkick_synonym" custom_settings[:analysis][:analyzer][:searchkick_search][:filter].insert(-2, "searchkick_synonym") diff --git a/lib/searchkick/search.rb b/lib/searchkick/search.rb index 51339ff..259c567 100644 --- a/lib/searchkick/search.rb +++ b/lib/searchkick/search.rb @@ -2,7 +2,7 @@ module Searchkick # can't check mapping for conversions since the new index may not be built module Search def index_types - Hash[ Product.index.mapping["product"]["properties"].map{|k, v| [k, v["type"]] } ].reject{|k, v| k == "conversions" || k[0] == "_" } + Hash[ (((Product.index.mapping || {})["product"] || {})["properties"] || {}).map{|k, v| [k, v["type"]] } ].reject{|k, v| k == "conversions" || k[0] == "_" } end def search(term, options = {}) diff --git a/test/searchkick_test.rb b/test/searchkick_test.rb index 3d2ff57..f78f56d 100644 --- a/test/searchkick_test.rb +++ b/test/searchkick_test.rb @@ -3,12 +3,12 @@ require "test_helper" class Product < ActiveRecord::Base searchkick \ synonyms: [ - "clorox => bleach", - "saranwrap => plastic wrap", - "scallion => green onion", - "qtip => cotton swab", - "burger => hamburger", - "bandaid => bandag" + ["clorox", "bleach"], + ["scallion", "greenonion"], + ["saranwrap", "plasticwrap"], + ["qtip", "cotton swab"], + ["burger", "hamburger"], + ["bandaid", "bandag"] ], settings: { number_of_shards: 1 -- libgit2 0.21.0