如何使用 Nest 在 Elasticsearch 中实现过滤器
本文关键字:实现 过滤器 Elasticsearch 何使用 Nest | 更新日期: 2023-09-27 18:35:10
假设我在搜索相同的产品后得到一些产品列表,现在我想根据颜色、大小等属性过滤它们。
如何编写嵌套查询?
这是我的搜索查询:
var result = client.Search<document>(s => s
.Analyzer("automplete").From(0).Size(20)
.Query(p => p
.MultiMatch(m => m
.OnFields(new[] { svalue })
.Query(value).Type(TextQueryType.PhrasePrefix)))
.Highlight(m => m.OnFields(n => n.OnField("some_field"))));
希望你没事我认为您正在寻找嵌套的物品。Elasticsearch有一个speacil查询,对于这个需求是NestedQuery
'
GET /my_index/blogpost/_search
{
"query": {
"bool": {
"must": [
{ "match": { "title": "eggs" }},
{
"nested": {
"path": "comments",
"query": {
"bool": {
"must": [
{ "match": { "comments.name": "john" }},
{ "match": { "comments.age": 28 }}
]
}}}}
]
}}}
'
在您的情况下,要访问嵌套的对象,您应该添加 products.color 作为条件。