elasticsearch索引包含来自数据库的数据,其中_id设置为格式为
的主键ACC000223344782
该键具有固定长度,并且在ACC之后具有0填充,如图所示。 需要搜索密钥以特定数字结尾的文档
一些示例用例
1-最后一位数是9
xxxxxxx9
2-第二个最后一个数字是3,最后一个数字是0到5之间
xxxxxx3[0>=5]
3-第3个最后一个数字在3到8之间,最后一个数字是4。
xxxxxx[3>=8]x4
你明白了。基本上是_id键的数字部分的随机部分。 为了解决这个问题,目前我已经将密钥手动拆分为单个数字,并在插入数据时作为另一个字段存储在文档中。这样,上面的键就变成了
_id: ACC000223344782,
split_key:
0:A
1:C
2:C
3:0
4:0
5:0
6:2
7:2
8:3
9:3
10:4
11:4
12:7
13:8
14:2
然后我可以在split_key字段字符串索引上使用搜索查询。
这似乎更像是一个穷人的索引。 split_key字段完全是多余的,我有一种感觉,如果我以正确的方式使用elasticsearch,则不应该需要它。有人能指出我正确的方向,以改善这一点并优雅地处理上述场景吗?