Можем ли мы искать.txt файлы в поисковой системе Solr?
Я использую поисковую систему Solr для целей моего проекта при поиске документов. Мой набор данных в формате.txt. Но solr предоставляет опции только для json,xml,pdf и некоторых других форматов файлов. Там нет опции для текстовых файлов.
Нужны ли какие-то изменения в solr для использования файлов.txt в качестве набора данных?
5 ответов
Помимо текстовых файлов, Solr также может индексировать несколько других форматов документов. Посмотрите на Apache Tika для деталей.
Все, что вам нужно сделать - это проиндексировать ваш текстовый файл.
Для получения дополнительной информации и конкретных примеров посмотрите здесь - http://www.slideshare.net/LucidImagination/indexing-text-and-html-files-with-solr-4063407
Скорее всего, у вас будут документы, разделенные пробелами, в файлах.txt. Чтобы индексировать файл.txt, вы можете написать сценарий python для потоковой передачи ваших документов, чтобы найти и выполнить коммит.
Я нашел очень полезную строку в руководстве по быстрому старту https://lucene.apache.org/solr/5_3_1/quickstart.html
java -classpath /solr-5.0.0/dist/solr-core-5.0.0.jar -Dauto=yes
-Dc=gettingstarted -Ddata=files -Drecursive=yes org.apache.solr.util.SimplePostTool docs/
Часть, которая особенно полезна для меня, -Dauto=yes
, Когда эта опция включена, Solr может обрабатывать много типов файлов (не спрашивайте меня, почему)
Entering auto mode. File endings considered are xml,json,csv,pdf,doc,docx,ppt,pptx,xls,xlsx,odt,odp,ods,ott,otp,ots,rtf,htm,html,txt,log
Все, что я знаю, это то, что я включил эту опцию, и теперь мой экземпляр будет принимать файлы pdf, xml и txt.
Вы можете использовать обработчик запросов CSV, чтобы позаботиться об этом. https://wiki.apache.org/solr/UpdateCSV Здесь вы можете настроить разделители и экранирующие символы. Например, если у вас есть "|" файл с разделителями, вы можете указать "&separator=|"
Ниже для индексации текстового файла с вкладками:
curl ' http://localhost:8983/solr/update/csv?commit=true&separator=%09&escape=\ & stream.file = / tmp / result.txt'