【问题标题】:Searchkick index blob columnsSearchkick 索引 blob 列
【发布时间】:2016-04-12 12:13:55
【问题描述】:

我正在尝试使用 Searchkick gem 为 MySQL 数据库中的 blob 列提供全文搜索,该列具有以二进制格式存储的文本数据,在使用 Zlib.inflate(model_column) 函数时将变得可读。

有没有办法在将数据传递给 searchkick 之前执行数据转换?

将 searchkick 添加到我的应用程序中的其他模型有效,仅在索引 blob 列时,我收到此错误

 Events.first.reindex
  Events Load (0.5ms)  SELECT  `events`.* FROM `events` LIMIT 1
  Events Store (3.4ms)  {"id":"","exception":["Encoding::UndefinedConversionError","\"\\x9C\" from ASCII-8BIT to UTF-8"]}
Encoding::UndefinedConversionError: "\x9C" from ASCII-8BIT to UTF-8

【问题讨论】:

    标签: ruby-on-rails ruby searchkick


    【解决方案1】:

    您可以使用search_data 方法控制对哪些数据进行索引。更改此方法后致电Model.reindex。例如:

    class Event < ActiveRecord::Base
      belongs_to :user
    
      def search_data
        {
          blob: Zlib.inflate(model_column)
          # ...
        }
      end
    end
    

    参考:https://github.com/ankane/searchkick#indexing

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-18
      • 2019-03-02
      • 1970-01-01
      • 2017-04-18
      • 2016-11-22
      相关资源
      最近更新 更多