我有一点阵。我想根据某些位是ON还是OFF进行过滤。查看Elasticsearch 2.3文档,我没有看到有关位数组的任何信息。
但似乎我可以使用布尔数组或二进制字段。
示例:假设我有2个文档,每个文档都有一个位数组字段。Doc1在该字段中具有011100,而Doc2具有00001。我想按011000进行过滤,在这种情况下,它仅给出Doc1。
任何想法如何在Elasticsearch中做到这一点?
谢谢。
编辑:另一个想法:
如果我将位数组转换为许多布尔字段,那么它将起作用。该文档可能看起来很难看,但是可以工作。基本上,如果位数组是32位,那么我将拥有32个布尔字段。那是实现此目标的最佳方法吗?
如果可以将其更改为包含已设置的位索引的数组。也就是说011100会[ 1 , 2 ,3 ],然后用一个terms查询做一个or或一个must查询and
011100
[ 1 , 2 ,3 ]
terms
or
must
and
范例:
a) document with "111" put test/test/1 { "bit_position" : [ 1, 2, 3 ] } b) document with 010 put test/test/2 { "bit_position": [ 2 ] } c) or-ing with 101 post test/_search { "query": { "terms": { "bit_position": [ 1, 3 ] } } }