Solr / admin / luke запросы иногда возвращают нули - PullRequest
1 голос
/ 05 июня 2019

Я пытаюсь получить некоторые метаданные (количество документов и дата последнего изменения) от 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 к запросу, но это не помогает.

Что я могу сделать, чтобы всегда получать правильный ответ?

...