2012-08-31 89 views
2

我有一个数字类别ID的elasticsearch指数是这样的:如何通过值数组来查询/过滤elasticsearch索引?

{ 
    "id": "50958", 
    "name": "product name", 
    "description": "product description", 
    "upc": "00302590602108", 
    "**categories**": [ 
    "26", 
    "39" 
    ], 
    "price": "15.95" 
} 

我希望能够通过类别ID的数组(与所有它的父ID的孩子,例如),并返回唯一结果匹配这些类别之一。我一直试图让它与术语查询一起工作,但没有运气。

此外,作为elasticsearch的新用户,我想知道如果我应该使用这种过滤器/小...

ANSWERED! 我结束了使用术语查询(而不是术语)。我仍然有兴趣了解是否有利于使用过滤器或方面。

+0

您可以请帮助我[这个问题](http://stackoverflow.com/questions/24690293/how-to-match-an-数组值逐其键合一个键 - 值对-elasticsearch阵列)?谢谢 – abi1964

回答

0

正如您已经发现的那样,termQuery会起作用。不过,我会建议一个termFilter,因为过滤器更快,并且可以缓存。

方面不会限制结果,但它们是优秀的工具。他们计算您的总结果中的具体条款的点击率,并用于faceted navigation.

+0

可以请你帮我[这个问题](http://stackoverflow.com/questions/24690293/how-to-match-an-array-value-by-its-key-in-a-key-value -pair-elasticsearch阵列)?谢谢 – abi1964

+0

@AbhishekSimon yep刚刚回复。我可以在几个小时内包含更多的细节,但我链接到您需要使用的类型。 – Andy