Mongodb или ElasticSearch: поиск доступных префиксов для строкового поля в коллекции
Допустим, у меня есть коллекция пользователей mongodb/asticsearch с полем имени пользователя. Теперь у меня есть несколько имен пользователей, вставленных в коллекцию:
ABRAHAM
ADOLF
ADAM
ALFRED
ALBA
ARDUINO
То, что я хочу узнать, это вставленные уникальные префиксы имени пользователя определенной длины. Таким образом, для длины 2 результат должен быть:
AB
AD
AL
AR
Хотя для префиксного индекса должно быть просто накапливать такой результат. Предоставляет ли mongodb/asticsearch API-интерфейсы для чего-то подобного?
1 ответ
Да, Elasticsearch
имеет такой вид API. Ты можешь попробовать
GET /index/_search
{
"aggs":{
"duplicateCount":{
"terms":{
"script" : {
"inline": "doc.username.value.substring(0, prefixLength)",
"params": {
"prefixLength": 2
}
}
}
}
}
}
Вы можете настроить prefixLength
параметр. Это даст вам результат с уникальным username
длины префикса prefixLength
,