Индекс поддерживает список уникальных терминов, поскольку именно так работает инвертированный индекс. Это также очень быстро вычисляется и возвращается, в отличие от огранки. Если ваши ценности представляют собой отдельные термины, то это может быть способом получить то, что вы хотите. Есть способ получить уникальные термины, если в вашем solrconfig.xml включен компонент Термины. Например:
http://localhost:8983/solr/corename/terms?q=*%3A*&wt=json&indent=true&terms=true&terms.fl=XXX
Вернет список всех уникальных терминов и их количество:
{
"responseHeader":{
"status":0,
"QTime":0},
"terms":{
"XXX":[
"John Backus",3,
"Ada Lovelace",3,
"Charles Babbage",2,
"John Mauchly",1,
"Alan Turing",1
]
}
}
Длина этого списка - это количество уникальных терминов, в примере это будет 5. К сожалению, API не предоставляет способа просто запросить количество, не возвращая список терминов, поэтому, хотя он имеет преимущество в скорости в создание списка, количество времени, необходимое для возврата полного списка, дает ему недостаток, аналогичный подходу фасетов. Кроме того, возвращаемый список может стать довольно длинным.
Посетите https://wiki.apache.org/solr/TermsComponent, чтобы узнать подробности об API.
person
Fuu
schedule
14.05.2015