форматиране на файлове преди индексиране в solr сървър

Използвам сървъра Solr, за да осигуря възможност за търсене на инструмент. Исках да знам дали има възможност, предоставена от solr, която ще ми позволи да форматирам някои файлове, преди да бъдат индексирани? по-конкретно имам обикновен текстов файл с много данни! искам да ги конвертирам в xml формат, преди да индексирам xml файла. напр

    some data! some more data : more values 

искам да конвертирам този примерен ред в нещо подобно

    <field 1>sample data </field 1>
    <field 2> some more data </field 2>  
    <field 3> more values  </field 3>

solr предоставя ли възможност за този тип трансформация, преди да индексира файл с помощта на solr клетка. предоставя ли някакви класове или интерфейси, които мога да внедря в моето java приложение??

Благодаря предварително!


person abhishek b    schedule 18.01.2013    source източник


Отговори (2)


Вкарвате ли данни в Solr или можете да ги изтеглите от източника чрез Solr?

Ако натискате Solr, тогава трябва да използвате Процесор за актуализиране на заявки. Въпреки това не ми е известно да разделя данните на множество полета. Може да се наложи да напишете такъв сами.

Ако теглите от източника с помощта на DataImportHandler, той има вградена поддръжка за разделяне на съдържание в множество полета с помощта на RegexTransformer.

Както процесорът за заявки, така и DIH поддържат трансформатори на JavaScript (и вероятно други скриптови езици на Java), така че можете също да напишете свой собствен скрипт, за да разделите данните по какъвто начин желаете.

Част от това обаче започва с версия 4 на Solr. Това е изискване, което трябва да имате предвид.

person Alexandre Rafalovitch    schedule 18.01.2013
comment
ами действителният проблем е следният ..имам голям обикновен текстов файл с много данни. помислете за примерен формат: somedatestamp someType someValue somedatestamp someType someValue somedatestamp someType someValue така че имам около 1000 реда като тези .. бих искал да направя запитване към този файл, за да върне стойности между две дати. Мислех, че ако мога да го токенизирам, ще бъде по-лесно да се прави заявка по атрибута, вместо по големия низ. Има ли начин да направите това?? - person abhishek b; 21.01.2013
comment
Ако трябва да върнете „стойностите“, тогава не искате тези „стойности“ в същия документ. Тогава вашият действителен документ съдържа тази стойност и съответната дата. Бих разгледал DataImportHandler и вложени обекти, където съдържанието на вътрешния обект идва от обработеното съдържание на външния обект. След това външен обект чете вашия файл и го разделя по някакъв начин на части. Това все пак е начало. - person Alexandre Rafalovitch; 21.01.2013

Ще ви е необходим персонализиран Index Handler или SolrRequestHandler

person Grooveek    schedule 18.01.2013