2017-08-12 4 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のユニークな結果が得られます。

関連する問題