2017-08-12 47 views
1

假设我有一个带有用户名字段的mongodb/elasticsearch用户集合。现在我有插入收集一些用户名:Mongodb或ElasticSearch:为集合中的字符串字段查找可用前缀

ABRAHAM 
ADOLF 
ADAM 
ALFRED 
ALBA 
ARDUINO 

我想找出是给予一定长度的插入唯一的用户名前缀。因此,对于长度为2的结果应该是:

AB 
AD 
AL 
AR 

虽然它应该是直接前缀索引来累积像这样的结果。 mongodb/elasticsearch是否提供任何API来执行此类操作?

回答

2

是的,Elasticsearch有这种api。你可以试试

GET /index/_search 
{ 
    "aggs":{ 
     "duplicateCount":{ 
      "terms":{ 
       "script" : { 
        "inline": "doc.username.value.substring(0, prefixLength)", 
        "params": { 
         "prefixLength": 2 
        } 
       } 
      } 
     } 
    } 
} 

你可以调整prefixLength参数。这会给你带来的前缀长度为prefixLength的独特username的结果。