Солр не расколол JSON - PullRequest
       18

Солр не расколол JSON

0 голосов
/ 15 апреля 2020

Я использую Solr v8.0.0, и я пытаюсь разделить json во время индексации, используя метод, описанный в официальной документации solr о преобразовании JSON, но он не работает как и ожидалось, и я получаю плоские Jsons в конце.

Вот как я это делаю:

Сначала я создаю одно ядро ​​с именем C2

bin/solr create_core -c c2                                                  

Затем это solrconfig. xml автоматически создается и оставлено по умолчанию.

, затем я пытаюсь проиндексировать некоторые данные, используя пример URL. единственное отличие состоит в том, что я добавил? commit = true в конец URL, чтобы мы могли видеть, что происходит

curl 'http://localhost:8983/solr/c2/update/json/docs'\
'?commit=true'\
'?split=/'\
'&f=first:/first'\
'&f=last:/last'\
'&f=grade:/grade'\
'&f=subject:/exams/subject'\
'&f=test:/exams/test'\
'&f=marks:/exams/marks'\
 -H 'Content-type:application/json' -d '
{
  "first": "John",
  "last": "Doe",
  "grade": 8,
  "exams": [
    {
      "subject": "Maths",
      "test"   : "term1",
      "marks"  : 90},
    {
      "subject": "Biology",
      "test"   : "term1",
      "marks"  : 86}
  ]
}'

, но в конце я получил такой вид индексации, а не тот, который был показан в примере:

Что я получил:

{
      {
        "first":["John"],
        "last":["Doe"],
        "grade":[8],
        "subject":["Maths",
          "Biology"],
        "test":["term1",
          "term1"],
        "marks":[90,
          86],
        "id":"284878be-1339-43b5-8a1e-adb7a4be95fb",
        "_version_":1664059760532520960}]
  }

Что я должен был получить:


{
  "first":"John",
  "last":"Doe",
  "marks":90,
  "test":"term1",
  "subject":"Maths",
  "grade":8
}
{
  "first":"John",
  "last":"Doe",
  "marks":86,
  "test":"term1",
  "subject":"Biology",
  "grade":8
}

Мои поля были сглажены, как обычно в нормальной индексации, без команды ?split=/ в URL. Может кто-нибудь помочь мне выяснить, почему это происходит?

Спасибо.

1 Ответ

0 голосов
/ 15 апреля 2020

Нет, это не единственная разница. В вашем запросе у вас есть:

'?split=/'\

В примере из руководства это:

'?split=/exams'\

И поскольку вы не разделяете на /exams в своем запросе, результат отличается.

...