gpt4 book ai didi

javascript - 如何从 Elasticsearch 查询/过滤器返回部分文档?

转载 作者:太空宇宙 更新时间:2023-11-04 16:24:28 25 4
gpt4 key购买 nike

我有一组文档(我们称之为书籍),其中包含信息子集(例如版本),其数据结构与此有点类似:

"book": {
"author": "A. N. Author",
"title": "Fantastic Queries and How to Index Them"
"editions": [
{
"publisher":"penguin",
"isbn": 124161256653,
"coverArtist":"Pain T Brush",
"amazonPrice":65.50
},
{
"publisher":"orbit",
"isbn": 124163526653,
"coverArtist":"Pain T Brush",
"amazonPrice":25.99
},
{
"publisher":"tor",
"isbn": 124169876353,
"coverArtist":"Pen See Il",
"amazonPrice":700.00
}
]
}

现在,通过我的查询(在 editions.publishereditions.isbn 上搜索),我得到了整个文档,包括没有的版本匹配查询结果。因此,需要明确的是,如果我在 coverArtist 中搜索 Pain T Brush,我想要返回的数据是:

"book": {
"author": "A. N. Author",
"title": "Fantastic Queries and How to Index Them"
"editions": [
{
"publisher":"penguin",
"isbn": 124161256653,
"coverArtist":"Pain T Brush",
"amazonPrice":65.50
},
{
"publisher":"orbit",
"isbn": 124163526653,
"coverArtist":"Pain T Brush",
"amazonPrice":25.99
}
]
}

与其他查询相同。如果我搜索特定的 isbn,我只希望返回其数据。如果我将价格范围设置为 > 500,我只想要最新版本(当然还有作者和标题信息)。最后,如果我在 title 中搜索 Fantastic Queries and How to Index Them,我希望返回整个文档以及所有版本信息,因为我没有指定任何特定于版本的内容。

我不知道如何让查询“深入”到文档中的特定对象,所以这可能吗?

最佳答案

尝试将版本对象放入其自己的文档中,并具有父子关系。

https://www.elastic.co/guide/en/elasticsearch/guide/current/parent-child.html

这样您就可以查询所需的确切子文档。如果您还需要父文档,则每个子文档都有一个 _parent 属性,您可以在 _id 搜索中使用该属性来返回父文档。

您甚至仍然可以根据子属性找到父级。

https://www.elastic.co/guide/en/elasticsearch/guide/current/has-child.html

关于javascript - 如何从 Elasticsearch 查询/过滤器返回部分文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40347185/

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