gpt4 book ai didi

android - Elasticsearch 查询字符串请求

转载 作者:行者123 更新时间:2023-11-30 00:04:57 25 4
gpt4 key购买 nike

我在我的 Android 应用程序中使用 Elasticsearch 。我在查询字符串中传递过滤器,如下所示:

URL/IndexName/TypeName/_search?sort=registry_date:desc&from=0&size=10&q=firstname:رشید

这很好用。但我想在名字字段上应用前缀过滤器,以通过查询字符串实现以下目标:

{
"query": {
"bool": {
"must": [
{
"prefix": {
"firstname.keyword": "رشید"
}
}
],
"must_not": [],
"should": []
}
},
"from": 0,
"size": 10,
"sort": [
{
"registry_date": {
"order": "desc"
}
}
],
"aggs": {}
}

有什么帮助吗?

最佳答案

我现在找不到我在哪里找到这个但对我来说(在 Elasticsearch 版本 5.4 上)是这样的:

URL/IndexName/TypeName/_search?source=PLACE_JSON_HERE

PLACE_JSON_HERE 可以是您作为 POST 正文传递的整个 JSON。

例如:

URL/IndexName/TypeName/_search?source={"query":{"match_all":{}}}

将返回所有文件。

在您的情况下,您甚至可以将 PLACE_JSON_HERE 替换为:

{
"query": {
"bool": {
"must": [
{
"prefix": {
"firstname.keyword": "رشید"
}
}
],
"must_not": [],
"should": []
}
},
"from": 0,
"size": 10,
"sort": [
{
"registry_date": {
"order": "desc"
}
}
],
"aggs": {}
}

但正如我所说,我现在在 ES 文档中找不到它,所以我不知道它是否适用于所有版本。


更新

在 6.2.2 版本上测试:

http://localhost:9200/_doc/_search?source={"query":{"match_all":{}}}&source_content_type=application/json

按预期工作。自 ES 6 以来,source_content_typesource 所必需的。

关于android - Elasticsearch 查询字符串请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49190899/

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