Solr удалить цитаты из многозначного значения или обновить сразу - PullRequest
0 голосов
/ 26 мая 2018

Я индексировал данные для моего SOLR ядра, используя команду CURL , где данные были в формате CSV .Команда была curl 'http://localhost:8983/solr/my_collection/update?commit=true' --data-binary @my_docs.csv -H 'Content-type:application/csv'

Данные успешно импортированы, но у меня возникла проблема с полем multiValued .В моем файле .csv значение поля multiValued было примерно таким: "['parking','garden','spa']", поэтому теперь импортированные данные на моем ядре solr выглядят как дополнительные двойные кавычки в формате ниже.

"amenities": [
          "['parking', 'garden', 'spa']"
          ^                            ^
           ]

Чтобы удалить эти двойные кавычки из моего поля multiValued , я пробовал этот способ из раздела «Документ» раздела пользовательского интерфейса SOLR ADMIN, и мне удалось выполнить Atomic Update с этимформат JSON

{
 "id":"2118506",
 "amenities":{"set":["parking", "garden", "spa""]},
} 

Я знаю, что могу атомно обновить все индексные документы, используя этот способ, отправив запрос curl на solr с помощью SET , но сейчас мне трудно, потому чтоЯ уже проиндексировал 20 миллионов документов.

Так что я просто хочу знать, есть ли в настоящий момент способ удалить двойные кавычки из поля multiValued во время запроса или любой более разумный способ удалить двойные кавычки из значения поля с помощьюодиночная команда curl без указания отдельных идентификаторов документов

NB Мне сейчас трудно удалить двойные кавычки из каждого файла CSV и попытаться переиндексировать документы

1 Ответ

0 голосов
/ 26 мая 2018

Причина двойных кавычек в том, что ваше значение индексируется как строка - оно не индексируется как многозначное поле.Здесь есть двойные кавычки, поскольку именно так JSON указывает, что мы говорим о строке.

Вам нужно будет изменить это при индексации ваших данных, и вы можете использовать несколько специальных аргументов при индексацииCSV :

f.amenities.split=true&f.amenities.separator=%2C

Таким образом, значения будут проиндексированы как фактическое многозначное поле, путем разделения значений из поля на ,.Если у вас есть фактический список JSON в вашем CSV-файле, я настоятельно рекомендую удалить [, ' и ] из поля в качестве шага предварительной обработки.

...