как получить последнюю проиндексированную запись в solr - PullRequest
1 голос
/ 26 марта 2020

В моем ядре solr у меня есть поле ID , которое является первичным ключом. Я определил это так:

<field name="ID" type="string" indexed="true" stored="true" required="true" multiValued="false" />

Я индексирую свои записи с помощью командной строки. После этого я хочу получить последний ID . Мой запрос как этот

http://localhost:8983/solr/StorageCore/select?fl=ID&q=*%3A*&sort=ID%20desc

Это дает мне этот результат

{
  "responseHeader":{
    "status":0,
    "QTime":0,
    "params":{
      "q":"*:*",
      "fl":"ID",
      "sort":"ID desc"}},
  "response":{"numFound":909,"start":0,"docs":[
      {
        "ID":"99"},
      {
        "ID":"98"},
      {
        "ID":"97"},
      {
        "ID":"96"},
      {
        "ID":"95"},
      {
        "ID":"94"},
      {
        "ID":"93"},
      {
        "ID":"92"},
      {
        "ID":"911"},
      {
        "ID":"910"}]
  }

Так что результат не тот, который я хочу. Я хочу получить 911 , а не 99 . Как я могу решить эту проблему?

ОБНОВЛЕНИЕ

После того, как @MatsLindh и @ Abhijit Bashetti помогают, я создал новое поле, тип которого int после этого я скопировал все свое поле uniqueKey, которое является ID , в новое поле. Так это сработало. Мой ответ на запрос, как это сейчас

{
  "responseHeader":{
    "status":0,
    "QTime":2,
    "params":{
      "q":"idCopy:*",
      "fl":"idCopy",
      "sort":"idCopy desc",
      "rows":"9999"}},
  "response":{"numFound":909,"start":0,"docs":[
      {
        "idCopy":[911]},
      {
        "idCopy":[910]},
      {
        "idCopy":[909]},
      {
        "idCopy":[908]},
      {
        "idCopy":[907]},
      {
        "idCopy":[906]},
      {
        "idCopy":[905]},
      {
        "idCopy":[904]},
      {
        "idCopy":[903]},
      {
        "idCopy":[902]},
      {
        "idCopy":[901]},
      {
        "idCopy":[900]},

1 Ответ

1 голос
/ 26 марта 2020

Вам нужно изменить fieldType вашего поля ID с string на int.

Это должно быть, как показано ниже.

<field name="IDS"  type="int" indexed="true" stored="true" multiValued="false" docValues="true"/>

Когда у вас есть fieldType как string результат, как показано ниже.

Image with string type

Если у вас fieldType как int, результат будет похож на ниже.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...