1

我在集成 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

4

1 回答 1

2

阅读文档:

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

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

并搜索(重新索引后):

Product.search “返回”,字段:[{name: :word_start}]

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

于 2014-10-29T18:31:19.310 回答