2016-09-10 7 views
5

Я использую запросы (Solr Admin) для поиска слов через два текстовых документа, которые находятся в моей HDFS. Как я могу получить имя документа, что слово встречается в. Я использую этот проект https://github.com/lucidworks/hadoop-solrSolr-Retrieve имя документа, в котором находится слово

Я создаю коллекцию с помощью bin/solr -e cloud и я использую «data_driven_schema_configs» от сервера/Solr/configsets/ каталог.

Я tryied добавления <field name="fileName" type="string" indexed="true" stored="true" /> внутри управляемых-схем в ~/Solr-6.1.0/сервер/Solr/configsets/data_driven_schema_configs/конфе, а также изменить его имя на schema.xml, но в этом в каталоге нет файла dataConfig для добавления <field column="file" name="fileName"/>, поскольку я вижу его в некоторых других сообщениях с похожими вопросами, но не для SolrCloud, поэтому я не знаю, правильно ли я пытаюсь. Какие изменения и в каких каталогах я должен сделать, чтобы это могло произойти.

Пример: Я ищу слово «наибольшее», которое можно найти в обоих документах. Как я могу понять, в каком документе это каждый результат, sample1.txt или sample2.txt

enter image description here

+2

Если только эти поля в индексе, описывает документы, вы не можете. Как вы создавали индексные файлы? Эти значения 'id', по-видимому, являются фактическим текстом из документов, а не подходящими уникальными идентификаторами. – MatsLindh

+0

Я использую этот проект https://github.com/LucidWorks/hadoop-solr @MatsLindh –

+0

Перед тем, как задать вопрос, вы должны начать читать основы Solr. Как сказал @MatsLindh, первое, что вы должны предоставить подходящие уникальные идентификаторы для поля 'id'. Фактический текст из документов должен быть проиндексирован в соответствующем текстовом поле, см. [Типы полей Solr] (https://cwiki.apache.org/confluence/display/solr/Solr+Field+Types). Также, если вы хотите, чтобы имя совпадающих документов, почему бы не индексировать и не хранить имена документов? – EricLavault

ответ

3

То же самое я сказал, когда вы упомянули этот вопрос на IRC:

Ваш Solr схемы должно содержать поле, в которое вы помещаете имя, устанавливается в stored = "true", и вы должны включать это поле с соответствующим значением в каждый документ при индексировании. Для большинства изменений схемы требуется полный переиндекс.

https://wiki.apache.org/solr/HowToReindex

+0

. Я добавил эту строку в manged-schema ' 'в этом каталоге:' /solr-6.1.0/server/solr/configsets/data_driven_schema_configs/conf' - это то, что вы имеете в виду? –

+0

И вы заверили, что это поле не только присутствует, но также заполнено во время процесса индексирования? И как старые документы вашего индекса получают значение в этом поле? Кто-то должен написать его там. Отныне вы повторно индексировали после расширения схемы? – cheffe

+0

@elyograg, что вы имеете в виду, «и вы должны включить это поле с соответствующим значением в каждый документ при индексировании». –