我有一个数据库,可以容纳从客户那里获得的所有技术支持电话。一些客户比其他客户更重要。首先,某些人不应该打电话。
现在,我正在尝试查找与数字集匹配的所有字符串。我有大约200个要查看的电话号码清单。当我不知道数字中是否包含国家代码或诸如此类的东西时,弹性数据就会以这种方式存储。因此,我将不得不使用通配符搜索每个数字。
我有一个csv文件,其中存储着这样的数字:
"323555421","Joe Blow","Management Inc"
"707555421","Douggie","Multinational Inc"
这是我能想到的最简单的解决方案:
GET /_search
{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"bool": {
"should": [
{"query": {"wildcard": {"phone": {"value": "*3235554121"}}}},
{"query": {"wildcard": {"phone": {"value": "*8185554121"}}}},
//...100 more records
{"query": {"wildcard": {"phone": {"value": "*7075554121"}}}},
{"query": {"wildcard": {"phone": {"value": "*2025554121"}}}}
]
}
}
}
}
}
除了它看起来很难看,我无法将它提供给我的用户外,没有人愿意坐在那里并使用sublime来转换这个查询通配符电话怪兽中的电话号码的简单列表。
另外,当我找到某些东西时,除非搜索原始的csv文件,否则我将无法知道该人的名字。
我可以将CSV上传到Elastic中并合并,但是不知道如何轻松地做到这一点。
在一个简单查询中可以用SQL解决的问题变成了弹性方面的重大灾难。谁有什么主意?
谢谢!