gpt4 book ai didi

node.js - elasticsearch使用and运算符进行通配符搜索

转载 作者:行者123 更新时间:2023-12-03 00:44:09 29 4
gpt4 key购买 nike

我正在开发一个使用 flex 搜索的应用程序,在某些情况下,我想根据术语和语言环境进行搜索。我正在本地主机上测试

http://localhost:9200/index/type/_search

和参数
query : {
wildcard : { "term" : "myterm*" }
},
filter : {
and : [
{
term : { "lang" : "en" }
},
{
term : { "translations.lang" : "tr" } //this is subdocument search
},
]
}

这是一个示例文件:
{
"_index": "twitter",
"_type": "tweet",
"_id": "5084151d2c6e5d5b11000008",
"_score": null,
"_source": {
"lang": "en",
"term": "photograph",
"translations": [
{
"_id": "5084151d2c6e5d5b11000009",
"lang": "tr",
"translation": "fotoğraf",
"score": "0",
"createDate": "2012-10-21T15:30:37.994Z",
"author": "anonymous"
},
{
"_id": "50850346532b865c2000000a",
"lang": "tr",
"translation": "resim",
"score": "0",
"createDate": "2012-10-22T08:26:46.670Z",
"author": "anonymous"
}
],
"author": "anonymous",
"createDate": "2012-10-21T15:30:37.994Z"
}
}

我正在尝试使用输入语言“en”和输出语言“tr”的通配符(用于自动完成)获取术语。它正在获取具有“myterm”但不适用的术语,并对此进行操作。任何建议将不胜感激

提前致谢

最佳答案

我猜想translations元素具有nested类型。如果是这种情况,则应使用nested查询:

curl -XPOST "http://localhost:9200/twitter/tweet/_search" -d '{
query: {
wildcard: {
"term": "term*"
}
},
filter: {
and: [{
term: {
"lang": "en"
}
}, {
"nested": {
"path": "translations",
"query": {
"term" : { "translations.lang" : "tr" }
}
}
}]
}
}'

关于node.js - elasticsearch使用and运算符进行通配符搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13006816/

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