【发布时间】:2021-09-23 05:49:44
【问题描述】:
您能帮我解决这个问题吗? “发现”中的我的 Kibana 数据库包含交易列表。我知道想在这个数据库中找到所有在特定工具(ISIN 编号)中完成的交易。当我手动添加过滤器并切换到 Elasticserach Query DSL 时,我发现以下内容:
{
"query": {
"bool": {
"should": [
{
"match_phrase": {
"obdetails.isin": "CH0253592783"
}
},
{
"match_phrase": {
"obdetails.isin": "CH0315622966"
}
},
{
"match_phrase": {
"obdetails.isin": "CH0357659488"
}
}
],
"minimum_should_match": 1
}
}
}
由于我想检查数据库中超过 200 个 ISINS,这似乎效率低下。有没有一种方法,我可以说“如果它包含以下 200 个 ISIN 中的一个,请告诉我交易?”。
我已经用谷歌搜索并尝试过,但没有成功:
{
"query": {
"terms": {
"obdetails.isin": [ "CH0357659488", "CH0315622966"],
"boost": 1.0
}
}
}
查询有效,但未显示任何结果。
【问题讨论】:
-
您可能需要共享您的索引以帮助澄清问题。但我猜您的
obdetails.isin是一个分析字段,可能无法按预期使用术语。添加keyword类型的字段应该会有所帮助。 -
你是个天才。问题解决了。非常感谢!
标签: elasticsearch kibana elasticsearch-dsl