gpt4 book ai didi

elasticsearch - 在Elasticsearch中搜索多个字段

转载 作者:行者123 更新时间:2023-12-02 22:43:57 25 4
gpt4 key购买 nike

我正在索引文件中的元数据,并且映射如下所示:

curl -XPUT "http://localhost:9200/myapp/" -d '
{
"mappings": {
"file": {
"properties": {
"name": {
"type": "string", "index": "not_analyzed"
},
"path": {
"type": "string", "index": "not_analyzed"
},
"user": {
"type": "string", "index": "not_analyzed"
}
}
}
}
}
'

也有其他一些字段,但它们与该问题无关。这里的“名称”是文件的名称,“路径”是文件的路径,而用户是该文件的所有者。编制索引时,数据可能类似于:
{ name: 'foo', path: '/', user: 'dude' }
{ name: 'bar', path: '/subfolder/', user: 'dude' }
{ name: 'baz', path: '/', user: 'someotherdude' }

我的问题是如何构建我的查询,以便可以在给定路径和用户的情况下列出文件夹。因此,搜索用户“dude”和路径“/”应导致“foo”。

最佳答案

您可以使用bool,它允许您指定必须匹配才能构成匹配的查询。您的查询将如下所示

{
"query": {
"bool" : {
"must" : [
{ "match": { "user" : "dude" } },
{ "match": { "path" : "/" } }
]
}
},
"fields": ["name"]
}

这是为了检查术语“dude”和路径“/”是否完全匹配

关于elasticsearch - 在Elasticsearch中搜索多个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18214156/

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