shy*_*yos 8 mapping elasticsearch
让我用一个例子来解释我的问题.假设我有三种不同类型的文档,其中包含一些常见字段,即book, song, magazin
name, author, publisher, pageNumber
等 name, singer, publisher, length
等. name, company, publisher, pageNumber
等.如您所见,名称和发布者字段是所有三种类型文档的公共字段. pageNumber是Magazin和Book的特色.其余字段独立于其他类型的文档.
我将这些数据存储在相同的索引上.我也可以存储这些数据,
具有单一类型,例如Object,其中包含category
(Book,Song,Magazin)字段.我首先创建索引时给出映射详细信息.因此,在此选项中,书籍将具有长度字段,但它将为空,因为它不是书籍功能.
或_type字段上的三种类型的文档.
我的查询和方面将在公共领域.以下哪种方法的查询和方面时间较少?
是/index/book,song,magazin/ -d {myQuery}
不是更有效
/index/object/ -d {myQuery && (category = book || category = song || category = magazin)}
?
谢谢你的回答.
Lucene中不存在Elasticsearch的类型概念.
索引文档时,文档的类型将被编入索引.然后,当仅搜索某些类型时,Elasticsearch将隐式地将索引类型的过滤器添加到查询中.
因此,你的最后一种方法,你有你category
的筛选器除了隐式_type:object
的筛选器.从本质上讲,你没有在这里使用Elasticsearch的类型获得任何东西.
归档时间: |
|
查看次数: |
2176 次 |
最近记录: |