Я пытаюсь получить некоторые метаданные (количество документов и дата последнего изменения) от Solr, и нашел для этого конечную точку /solr/<core>/admin/luke
.
Однако мои запросы иногда возвращают нули вместо значений. Я могу воспроизвести его через SolrJ и curl:
✗ curl hostname / solr / core_name / admin / luke -s | jq '.index.lastModified'
"2019-06-04T19: 59: 45.617Z"
✗ curl hostname / solr / core_name / admin / luke -s | jq '.index.lastModified'
нуль
Без jq
результаты либо:
{
"responseHeader":{
"status":0,
"QTime":2},
"index":{
"numDocs":11,
"maxDoc":11,
"deletedDocs":0,
"indexHeapUsageBytes":-1,
"version":6,
"segmentCount":1,
"current":true,
"hasDeletions":false,
"directory":"org.apache.lucene.store.NRTCachingDirectory:NRTCachingDirectory(MMapDirectory@ ... lockFactory=org.apache.lucene.store.NativeFSLockFactory@2846d2cf; maxCacheMB=48.0 maxMergeSizeMB=4.0)",
"segmentsFile":"segments_1",
"segmentsFileSizeInBytes":-1,
"userData":{
"commitTimeMSec":"1559730066881",
"commitCommandVer":"1635495514608762880"},
"lastModified":"2019-06-05T10:21:06.881Z"},
"fields":{ .... },
"info":{ .... }
}
или
{
"responseHeader":{
"status":0,
"QTime":2},
"index":{
"numDocs":11,
"maxDoc":11,
"deletedDocs":0,
"indexHeapUsageBytes":-1,
"version":4,
"segmentCount":1,
"current":false,
"hasDeletions":false,
"directory":"org.apache.lucene.store.NRTCachingDirectory:NRTCachingDirectory(MMapDirectory@ .... lockFactory=org.apache.lucene.store.NativeFSLockFactory@1e10c435; maxCacheMB=48.0 maxMergeSizeMB=4.0)",
"segmentsFile":"segments_1",
"segmentsFileSizeInBytes":-1,
"userData":{}},
"fields":{ .... },
"info":{ .... }
}
Я опустил часть index.directory
, fields
и info
. Разница в version
, current
, userData
и lastModified
, все остальное выглядит так же.
Я использую Solr 7.5 в облачном режиме. Мои коллекции находятся на нескольких осколках с репликами = 2 (или больше). Я пытался добавить ?numTerms=50
к запросу, но это не помогает.
Что я могу сделать, чтобы всегда получать правильный ответ?