Elasticsearch中Rails的as_indexed_json和mappings的区别

11

我正在使用 Elasticsearch Rails gem,并在我的模型中使用了两个东西:

def as_indexed_json

end

settings index: { number_of_shards: 1 } do
  mapping dynamic: 'false' do
    indexes :id
    indexes :customer do                                                                                                                                                                                                                          
      indexes :first_name
    end
  end
end 

我已经阅读了文档,但我不明白每个目的是什么。 我想要弄清楚的是它们是用于搜索索引数据还是用于创建索引数据?

1个回答

8

as_indexed_json 方法用于覆盖将发送到 ES 进行索引的数据。如何索引您发送的数据由第二部分配置。

要在索引的数据中使用 ES 进行搜索,必须执行 _query

如果需要更多信息,请随时提问。


我已经正确地设置了这个,但是我在ES如何索引数据方面遇到了麻烦。它没有索引关联的模型。我将更新上面的代码。如果更好的话,我可以开一个新问题。 - Mike Riley
你是否已经像处理第一个模型一样处理了ES索引的相关模型?如果是这样,你是否已经在as_index_json方法中集成了关联? - gfd
我已经在as_index_json方法中集成了关联。我的代码如下:self.as_json(include: { customer: { include: { orders: { } }} } - Mike Riley
你是说在我的其他模型(比如客户)中,我应该在那里进行映射而不是在这个同一模型中吗?因此,每个模型都应该有自己的映射,并通过 as_indexed_json 相互关联。 - Mike Riley
如果您只对一个模型执行查询(但在查询中搜索具有特定关联的项目),我认为您不需要单独索引您的客户端。但是,由于这是一个不同的问题,因此您可能希望发布一个新问题,以便您拥有更多的可见性。 - gfd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接