ElasticSearch 搜索多种类型

发布于 2024-11-18 03:46:37 字数 351 浏览 1 评论 0原文

我将 Rails 与 Tire gem(用于 ElasticSearch)一起使用,并且我需要跨多个模型进行搜索。比如:

# title is a field in all models
Tire.search :tasks, :projects, :posts, { :title => "word" } 

我知道我可以一一搜索模型,然后处理这些结果,但考虑到 ElasticSearch(Lucene) 是面向文档的,这应该是不必要的。

有什么想法吗?

谢谢,

I'm using Rails with the Tire gem (for ElasticSearch) and I need to search across multiple models. Something like:

# title is a field in all models
Tire.search :tasks, :projects, :posts, { :title => "word" } 

I know I can search models one by one and then handle these results, but that should be unecessary considering ElasticSearch(Lucene) is document oriented.

Any thoughts?

Thanks,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

帝王念 2024-11-25 03:46:37

一种可能性是将它们视为不同的模型。复合模型可以是每个文档都可以是属于一个或多个不同子模型的项目,这些子模型由可以是多值的字符串常量标识。

如果您只想检索其中一个子模型的结果,您可以向查询添加一个固定部分,该部分标识属于该子模型的文档集。

唯一需要注意的是,您需要有一个唯一的主键(这还不错,因为您可以使用隐式文档键之类的东西)。

One possibility is to see them not as distinct models. A compound model could be that every document can be an item belonging to one or many differnt submodels identified by a string constant which can be multivalued.

If you want to retrieve only results from one of those submodels you could add a fixed part to the query which identifies the set of documents belonging to this submodel.

The only caveeat is that you need to have a primary key which is unique(which is not that bad because you can use something like an implicit document key).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文