Solr / Solrj: Как определить общее количество документов в индексе?

Как я могу определить общее количество документов в индексе Solr с помощью Solrj?

После нескольких часов самостоятельных поисков у меня действительно есть ответ (приведенный ниже); Я публикую этот вопрос только для того, чтобы другим было легче найти решение.


person George Armhold    schedule 19.02.2011    source источник


Ответы (3)


Вот что я использую. Это канонично? Есть ли способ лучше?

    SolrQuery q = new SolrQuery("*:*");
    q.setRows(0);  // don't actually request any data
    return server.query(q).getResults().getNumFound();
person George Armhold    schedule 19.02.2011
comment
Для быстрой проверки REST API введите что-то вроде: http://hostname:8983/solr/collection_name_here/query?debug=query&q=*:* и numFound содержит счетчик. - person cfeduke; 24.06.2016
comment
Что-то вроде wget http://hostname:8983/solr/collection_name_here/query?q=*:* тоже помогает :) `(и сохраняет результат в файле с именем query?q=*:*) - person motagirl2; 25.04.2019
comment
Добавьте параметр rows, чтобы не возвращать данные, поэтому просто количество в numFound: http://hostname:8983/solr/collection_name_here/query?q=*:*&rows=0 - person Jim Bob; 27.03.2020

Ваш ответ на запрос *:*, вероятно, является лучшим и наиболее общим решением. Особенно, если вы используете SolrCloud. Однако есть альтернативное решение: Solr Core Admin API < / а>

person whomer    schedule 06.02.2017

Вставка всего curl:

curl -s --negotiate -u: 'hostname:8983/solr/my_collection/query?q=*:*&rows=0' | jq '.response | .numFound'
1868000278
person mrjoseph    schedule 12.02.2021