[Groonga-commit] ranguba/groonga-client-model at ed0e501 [master] Support normalizer

Back to archive index

Kouhei Sutou null+****@clear*****
Fri Mar 3 09:39:53 JST 2017


Kouhei Sutou	2017-03-03 09:39:53 +0900 (Fri, 03 Mar 2017)

  New Revision: ed0e501b2581c87adb01455eb65f141c0ff4ce42
  https://github.com/ranguba/groonga-client-model/commit/ed0e501b2581c87adb01455eb65f141c0ff4ce42

  Message:
    Support normalizer

  Modified files:
    lib/groonga_client_model/migration.rb
    test/unit/test_migration.rb

  Modified: lib/groonga_client_model/migration.rb (+14 -1)
===================================================================
--- lib/groonga_client_model/migration.rb    2017-03-03 09:28:09 +0900 (602ef50)
+++ lib/groonga_client_model/migration.rb    2017-03-03 09:39:53 +0900 (ea0f5b6)
@@ -55,7 +55,8 @@ module GroongaClientModel
                      type: nil,
                      key_type: nil,
                      tokenizer: nil,
-                     default_tokenizer: nil)
+                     default_tokenizer: nil,
+                     normalizer: nil)
       return remove_table_raw(name) if @reverting
 
       type = normalize_table_type(type || :array)
@@ -66,16 +67,19 @@ module GroongaClientModel
       if type != "TABLE_NO_KEY" and key_type == "ShortText"
         tokenizer ||= default_tokenizer
         tokenizer = normalize_tokenizer(tokenizer)
+        normalizer = normalize_normalizer(normalizer)
       end
       options = {type: type}
       options[:key_type] = key_type if key_type
       options[:tokenizer] = tokenizer if tokenizer
+      options[:normalizer] = normalizer if normalizer
       report(__method__, [name, options]) do
         @client.request(:table_create).
           parameter(:name, name).
           flags_parameter(:flags, [type]).
           parameter(:key_type, key_type).
           parameter(:default_tokenizer, tokenizer).
+          parameter(:normalizer, normalizer).
           response
       end
 
@@ -214,6 +218,15 @@ module GroongaClientModel
       end
     end
 
+    def normalize_normalizer(normalizer)
+      case normalizer.to_s
+      when /\A(?:normalizer_?)?auto\z/i
+        "NormalizerAuto"
+      else
+        normalizer
+      end
+    end
+
     def remove_table_raw(name)
       report(:remove_table, [name]) do
         @client.request(:table_remove).

  Modified: test/unit/test_migration.rb (+23 -0)
===================================================================
--- test/unit/test_migration.rb    2017-03-03 09:28:09 +0900 (e67b25f)
+++ test/unit/test_migration.rb    2017-03-03 09:39:53 +0900 (481691e)
@@ -131,6 +131,29 @@ table_create terms TABLE_PAT_KEY ShortText --default_tokenizer TokenBigram
           end
         end
       end
+
+      test("normalizer") do
+        expected_up_report = <<-REPORT
+-- create_table(:terms, {:type=>"TABLE_PAT_KEY", :key_type=>"ShortText", :normalizer=>"NormalizerAuto"})
+   -> 0.0s
+        REPORT
+        expected_down_report = <<-REPORT
+-- remove_table(:terms)
+   -> 0.0s
+        REPORT
+        expected_dump = <<-DUMP.chomp
+table_create terms TABLE_PAT_KEY ShortText --normalizer NormalizerAuto
+      DUMP
+        assert_migrate(expected_up_report,
+                       expected_down_report,
+                       expected_dump) do |migration|
+          migration.instance_eval do
+            create_table(:terms,
+                         :type => :patricia_trie,
+                         :normalizer => :auto)
+          end
+        end
+      end
     end
 
     sub_test_case("columns") do
-------------- next part --------------
HTML����������������������������...
다운로드 



More information about the Groonga-commit mailing list
Back to archive index