首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PHP /Elastica查询中添加"runtime_mappings“?

如何在PHP /Elastica查询中添加"runtime_mappings“?
EN

Stack Overflow用户
提问于 2022-08-22 08:40:14
回答 1查看 57关注 0票数 0

需要使用FOSElasticaBundle将下一个json查询添加到php代码中:

代码语言:javascript
复制
"runtime_mappings": {
  "Agreement": {
    "type": "keyword",
    "script": {
      "source": "if(doc['winningBidder.edrpou'].size()>0 && doc['seller'].size()>0)\r\n{\r\nemit(\r\n    doc['seller'].value+\":\"+\r\n    doc['trading.id'].value+\":\"+\r\n    doc['winningBidder.edrpou'].value+\":\"\r\n    )\r\n}"
    }
  }
}

如果我是在简单方法(\Elastica\Query)->addParam()中设置它的话:

代码语言:javascript
复制
->addParam('runtime_mappings', [
    'Agreement' => [
        'type' => 'keyword',
        'script' => [
            'source' => "if(doc['winningBidder.edrpou'].size()>0 && doc['seller'].size()>0)\r\n{\r\nemit(\r\n    doc['seller'].value+\":\"+\r\n    doc['trading.id'].value+\":\"+\r\n    doc['winningBidder.edrpou'].value+\":\"\r\n    )\r\n}"
        ]
    ]
])

然后,当我试图收集查询时,会得到一个错误:

代码语言:javascript
复制
Unknown key for a START_ARRAY in [runtime_mappings].
EN

回答 1

Stack Overflow用户

发布于 2022-08-23 13:28:30

或者,您可以通过从"runtime_mappings“数组开始并在后面添加所有其他参数来创建查询:

代码语言:javascript
复制
$query = \Elastica\Query::create(['runtime_mappings' => [
    'Agreement' => [
        'type' => 'keyword',
        'script' => [
            'source' => "if(doc['winningBidder.edrpou'].size()>0 && doc['seller'].size()>0)\r\n{\r\nemit(\r\n    doc['seller'].value+\":\"+\r\n    doc['trading.id'].value+\":\"+\r\n    doc['winningBidder.edrpou'].value+\":\"\r\n    )\r\n}"
        ]
    ],
]]);
代码语言:javascript
复制
// add other params to query...
$query->addParam();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73442305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档