小编gli*_*101的帖子

Searchkick-尾随特殊字符

我正在使用Searchkich on Rails 5应用程序。

在模型的search_data中,Part我具有包含点(.)和连字符(-)的字符串字段。我想使用查询字符串中的点和连字符对这些字段进行文字搜索。我正在使用word_start火柴。

当我的查询字符串看起来像这样时:66.6它可以正常工作(它会找到带有以开头的查询字段的所有记录66.6)。

但是,如果点(或其他特殊字符)结尾(即66.or 66-或什至66.---.-.---),则其行为类似于查询字符串is just 66。修整了“正常”字符(字母和数字)后,似乎一切正常。

我的搜索如下所示:

Part.search "66.", fields: [:catalogue_number], misspellings: false, match: :word_start
Run Code Online (Sandbox Code Playgroud)

有什么可能的解决方案?

编辑:

好的,我把它分解了,似乎圆点和连字符是两个独立的问题。

  1. 查询字符串中的点似乎具有如上所述的行为-如果点后跟任何“常规”字符搜索,则按预期方式工作。但是尾随点似乎被忽略了。
  2. 查询字符串中间的连字符的行为类似于空格-它们将查询字符串划分为不同的字符串(随后与operator相连and)。尾部的连字符似乎被忽略了(像点一样)。

我需要的是点和连字符都可以在查询字符串中的任何地方按字面上的方式运行。

ruby-on-rails elasticsearch searchkick

5
推荐指数
1
解决办法
294
查看次数

标签 统计

elasticsearch ×1

ruby-on-rails ×1

searchkick ×1