【发布时间】:2015-10-06 19:25:21
【问题描述】:
我有以下 json 对象 --
{
"Title": "Terminator,
"Purchases": [
{"Country": "US", "Site": "iTunes"},
{"Country": "FR", "Site": "Google"}
]
}
鉴于上述对象,以下是搜索结果显示产量的方式:
"Titles on iTunes in US" ==> YES, show "Terminator"
"Titles on Google in FR" ==> YES, show "Terminator"
"Titles on iTunes in FR" ==> NO
但是,如果我只是AND 查询,以获取带有Purchase.Country="FR" 的标题和带有Purchase.Site="iTunes" 的标题,它会错误地显示上述结果,因为这两个条件都满足了。但是,我想将该方面限制在购买项目中。 python代码中的等价物是:
for purchase in item['Purchases']:
if purchase['Country'] == "FR" and purchase['Site'] == "iTunes":
return True
目前它是这样工作的:
for purchase in item['Purchases']:
if purchase['Country'] == "FR":
has_fr = True
if purchase['Site'] == "iTunes":
has_itunes = True
if has_itunes and has_fr: return True
这将如何在 ElasticSearch 中完成?
【问题讨论】:
-
您是否也在询问如何在 Solr 中执行此操作? (看到您将其标记为 Solr)
-
你可以使用嵌套过滤器..而不是AND,你会得到相应的结果
-
@RohitKumar 能否请您在答案中说明如何做到这一点?
标签: json elasticsearch lucene