【问题标题】:Rails Elasticsearch + SearchkickRails Elasticsearch + Searchkick
【发布时间】:2014-12-24 14:17:11
【问题描述】:

我在集成 searchkick 和 elasticsearch 时遇到问题。这是我现在所拥有的:

Product records:
id: 1
title: "Electric Fan"

id: 2
title: "Stove"

id: 3
title: "Stoven"

id: 4
title: "Stovener"

这是我的模型

class Product < ActiveRecord::Base
  searchkick
end

但是当我去 rails 控制台并尝试搜索时,它只会给我一个结果:

results = Product.search("Stove")
results.map(&:title) # prints ["Stove"]

我不知道为什么它只生成一个实际上应该生成三个的结果。我安装并确保 elasticsearch 正在运行。

有什么我错过的吗?

TIA

【问题讨论】:

  • 你能为那个索引提供你的映射吗?

标签: ruby-on-rails elasticsearch searchkick


【解决方案1】:

阅读文档:

默认情况下,结果必须匹配整个单词 - back 不会匹配背包。您可以通过以下方式更改此行为:

class Product < ActiveRecord::Base
  searchkick word_start: [:name]
end

然后搜索(在你重新索引之后):

Product.search "back",字段:[{name: :word_start}]

来源 - https://github.com/ankane/searchkick#partial-matches

【讨论】:

    猜你喜欢
    • 2023-03-07
    • 2015-09-11
    • 2014-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-03
    • 1970-01-01
    相关资源
    最近更新 更多