2017-08-12 81 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的結果。