【问题标题】:How to combine full_text_search with unaccent using Sequel gem?如何使用 Sequel gem 将 full_text_search 与 unaccent 结合起来?
【发布时间】:2018-08-06 23:28:03
【问题描述】:

我如何使用方法Sequel.full_text_search 结合PostgreSQL 中可用的函数unaccent 来返回匹配搜索词的记录,而不考虑带重音的字符?

例如:

# Given a user with first_name: Nícolas
User.full_text_search(:first_name, "nicolas").count
# Expected result to be 1, but it is 0

【问题讨论】:

    标签: ruby postgresql full-text-search sequel


    【解决方案1】:

    我们可以通过使用Sequel::SQL::Function类来达到预期的效果:

    # Given a user with first_name: Nícolas
    col = Sequel.qualify(:users, :first_name)
    col_without_accent = Sequel::SQL::Function.new(:UNACCENT, col)
    Person.full_text_search(col_without_accent, "nicolas").count
    # => 1
    

    我们也可以将相同的unaccent 函数应用于匹配结果的术语:

    Person.full_text_search(col_without_accent, Sequel::SQL::Function.new(:UNACCENT, "nícolas")).count
    

    【讨论】:

      猜你喜欢
      • 2018-12-08
      • 2012-03-17
      • 2017-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-04
      相关资源
      最近更新 更多