elasticsearch 如何使用mustache将数组传递给ElasticSearch搜索模板?
这是我的搜索查询模板的一部分:
elasticsearch 如何使用mustache将数组传递给ElasticSearch搜索模板?,
elasticsearch,
elasticsearch,这是我的搜索查询模板的一部分: "query": { "bool": { "must": [ { "terms": { "platform_id": [ "{{#platform_ids}}", "{{.}}",
"query": {
"bool": {
"must": [
{
"terms": {
"platform_id": [
"{{#platform_ids}}",
"{{.}}",
"{{/platform_ids}}"
]
}
}
],
此解决方案取自elasticsearch官方网站
我有一个疑问:
GET _render/template
{
"id": "fddf",
"params": {
"query_string": "tinders",
"platform_ids": [1, 2]
}
}
结果是:
"terms" : {
"platform_id" : [
"",
"1",
"",
"2",
""
]
}
但我需要这个:
"terms" : {
"platform_id" : [
1, 2
]
}
无法找到此问题的解决方案。请求:
GET _render/template
{
"source": "{ \"query\": { \"terms\": {{#toJson}}bids{{/toJson}} }}",
"params": {
"bids":[1,2]
}
}
{
"template_output" : {
"query" : {
"terms" : [
1,
2
]
}
}
}
"query": {
"bool": {
"must": [
{
"terms": {
"platform_id": {{#toJson}}platform_id{{/toJson}}
}
}
],
响应:
GET _render/template
{
"source": "{ \"query\": { \"terms\": {{#toJson}}bids{{/toJson}} }}",
"params": {
"bids":[1,2]
}
}
{
"template_output" : {
"query" : {
"terms" : [
1,
2
]
}
}
}
"query": {
"bool": {
"must": [
{
"terms": {
"platform_id": {{#toJson}}platform_id{{/toJson}}
}
}
],
尝试以下内容:
GET _render/template
{
"source": "{ \"query\": { \"terms\": {{#toJson}}bids{{/toJson}} }}",
"params": {
"bids":[1,2]
}
}
{
"template_output" : {
"query" : {
"terms" : [
1,
2
]
}
}
}
"query": {
"bool": {
"must": [
{
"terms": {
"platform_id": {{#toJson}}platform_id{{/toJson}}
}
}
],
请求:
GET _render/template
{
"source": "{ \"query\": { \"terms\": {{#toJson}}bids{{/toJson}} }}",
"params": {
"bids":[1,2]
}
}
{
"template_output" : {
"query" : {
"terms" : [
1,
2
]
}
}
}
"query": {
"bool": {
"must": [
{
"terms": {
"platform_id": {{#toJson}}platform_id{{/toJson}}
}
}
],
响应:
GET _render/template
{
"source": "{ \"query\": { \"terms\": {{#toJson}}bids{{/toJson}} }}",
"params": {
"bids":[1,2]
}
}
{
"template_output" : {
"query" : {
"terms" : [
1,
2
]
}
}
}
"query": {
"bool": {
"must": [
{
"terms": {
"platform_id": {{#toJson}}platform_id{{/toJson}}
}
}
],
尝试以下内容:
GET _render/template
{
"source": "{ \"query\": { \"terms\": {{#toJson}}bids{{/toJson}} }}",
"params": {
"bids":[1,2]
}
}
{
"template_output" : {
"query" : {
"terms" : [
1,
2
]
}
}
}
"query": {
"bool": {
"must": [
{
"terms": {
"platform_id": {{#toJson}}platform_id{{/toJson}}
}
}
],
您需要修改模板,如下所示
GET _render/template
{
"source": "{\"query\":{\"bool\":{\"must\":[{\"terms\":{\"platform_id\":[{{#platform_id}}{{value}}{{#comma}},{{/comma}}{{/platform_id}}]}}]}}}",
"params": {
"platform_id": [
{
"value": 1,
"comma": true
},
{
"value": 2
}
]
}
}
结果将是
{
"template_output": {
"query": {
"bool": {
"must": [
{
"terms": {
"platform_id": [
1,
2
]
}
}
]
}
}
}
}
请参阅此部分以获得详细说明您需要修改模板,如下所示
GET _render/template
{
"source": "{\"query\":{\"bool\":{\"must\":[{\"terms\":{\"platform_id\":[{{#platform_id}}{{value}}{{#comma}},{{/comma}}{{/platform_id}}]}}]}}}",
"params": {
"platform_id": [
{
"value": 1,
"comma": true
},
{
"value": 2
}
]
}
}
结果将是
{
"template_output": {
"query": {
"bool": {
"must": [
{
"terms": {
"platform_id": [
1,
2
]
}
}
]
}
}
}
}
请参阅此处以获得详细说明您使用什么语言渲染胡子模板?如果您使用的是python/javascript之类的东西,可能有更简单的方法来实现这一点?如果您使用的是python/javascript之类的东西,可能有更简单的方法来实现这一点。谢谢,在我意识到必须将源模板完全作为字符串传递之后,这一点就起到了作用。我尝试了所有这些方法,源代码是一个json,而不是一个包含json和mustache模板的字符串。谢谢,在我意识到必须将源代码模板作为字符串完全传递之后,这一切都起了作用。我尝试了所有这些方法,源代码是一个json,而不是一个包含json和mustache模板的字符串。所有问题实际上是我将源代码模板作为json传递,而不是一个包含json的字符串。这个方法也有效,谢谢!所有的问题实际上是我将源模板作为json传递,而不是包含json的字符串。这个方法也有效,谢谢!