gpt4 book ai didi

mapping - Elasticsearch - 跨多种类型的搜索效率

转载 作者:行者123 更新时间:2023-11-29 02:46:38 24 4
gpt4 key购买 nike

让我用一个例子来解释我的问题。假设我有三种不同类型的文档,其中包含一些常见字段,即 book、song、magazin

  • Bookname, author, publisher, pageNumber etc.
  • Songname, singer, publisher, length etc.
  • Magazinname, company, publisher, pageNumber etc.

如您所见,namepublisher 字段是所有三种类型文档的通用字段。pageNumberMagazinBook 的特征。其余字段独立于其他类型的文档。

我会将这些数据存储在同一个索引中。我也可以存储这些数据,

  • 使用单一类型,例如 Object,它有一个 category(Book , Song, Magazin) 字段。我在首次创建索引时提供映射详细信息。因此,在此选项中,book 将具有长度字段,但它将是空的,因为它不是 Book 功能。

  • 或 _type 字段上的三种类型的文档。

我的查询和构面将在公共(public)字段上。以下哪种方法的查询和分面时间会更少?

/index/book,song,magazin/-d {myQuery} 是否比/index/object/-d {myQuery && (category = book || category = song || category = magazin)} ?

感谢您的回答。

最佳答案

Elasticsearch 的类型概念在 Lucene 中不存在。

索引文档时,文档的类型会被索引。然后,当只搜索某些类型时,Elasticsearch 会隐式地为您的查询添加一个针对索引类型的过滤器。

因此,对于您的最后一种方法,除了隐式 _type:object-filter 之外,您还将拥有 category-filter 。本质上,如果不在此处使用 Elasticsearch 的类型,您将不会获得任何好处。

关于mapping - Elasticsearch - 跨多种类型的搜索效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20837387/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com