Сканировать изображения и их метаданные с помощью nutch и индексировать их в solr

#image #apache #solr #web-crawler #nutch

#изображение #apache #solr #веб-сканер #nutch

Вопрос:

Я хочу создать поисковую систему на основе мини-изображений, в которую я могу предоставить файл изображения, и она будет искать похожие изображения в solr. Я использую nutch для обхода части и индексирования данных в solr. Я внес изменения в файлы nutch conf, такие как —

  • Добавлено image/* в mimetype-filter.txt
  • Удалены расширения изображений из suffix-urlfilter.txt — чтобы не пропустить их

Я также добавил поля в solr schema.xml —

 <field name="name" type="string" indexed="true" stored="true" />
<field name="iso" type="string" indexed="true" stored="true" multiValued="true" />
<field name="iso_string" type="string" indexed="true" stored="true" multiValued="true" />
<field name="aperture" type="double" indexed="true" stored="true" />
<field name="exposure" type="string" indexed="true" stored="true" />
<field name="exposure_time" type="double" indexed="true" stored="true" />
<field name="focal" type="string" indexed="true" stored="true" />
<field name="focal_35" type="string" indexed="true" stored="true" />
<dynamicField name="ignored_*" type="string" indexed="false" stored="false" multiValued="true" />
  

Но когда я сканирую, нет данных, которые индексируются в solr. Я не могу найти какую-либо документацию / учебное пособие по этому поводу. Я также просмотрел несколько сообщений о stackoverflow для сканирования изображений с использованием nutch. Но я не нашел их полезными.

Может кто-нибудь, пожалуйста, направить меня в правильном направлении относительно того, как действовать дальше? Заранее спасибо.

Комментарии:

1. Вы проверили это сообщение в блоге lobster1234.github.io/2017/08/14/search-with-nutch-mongodb-solr ? После того, как вы запустили его для текста, вы можете адаптировать его для изображений…

Ответ №1:

Для этой проблемы нет простого / короткого ответа, разбор изображений — сложное дело, даже без участия части обхода. В дополнение к тому, что вы уже сделали, вам сначала нужно включить parse-tika плагин ( parse-html работает только с документами HTML). Apache Tika может извлекать некоторые метаданные об изображениях.

Вам также необходимо включить mimetype-filter плагин (это не только редактирование файла конфигурации, но и включение в nutch-site.xml файле). После выполнения этих настроек вам следует попробовать bin/nutch parsechecker <URL> инструмент для проверки URL-адреса, содержащего некоторые изображения, и посмотреть, сможете ли вы найти URL-адреса к изображениям в Outlinks разделе. Кроме того, проверьте выполнение parsechecker по URL-адресу изображения, чтобы узнать, какие метаданные извлекает parsechecker. После этого запустите bin/nutch indexchecker инструмент для обоих URL-адресов и проверьте, какие поля он будет индексировать в Solr, и создайте их в вашей схеме соответствующим образом. Имейте в виду, что Tika может извлекать разные метаданные для каждого формата.

Комментарии:

1. Я сделал то же самое, что вы упомянули. Мое требование — получать результаты (как текстовые, так и изображения) на основе искомого ключевого слова. Текстовый поиск работает очень хорошо. Но на этапе синтаксического анализа изображений (bin / nutch parsechecker <IMG_URL> ) имя изображения не указано в метаданных. У вас есть какие-либо предложения?

2. У вас есть какие-либо предложения?

3. Я предполагаю, что под именем вы подразумеваете имя файла изображения, верно? Вы случайно не используете Solr? Если да, то вы можете извлечь имя файла из URL-адреса, который уже присутствует (и отправлен в Solr). В этом случае вы можете скопировать URL-адрес в другое поле (например filename ) и использовать solr.RegexReplaceProcessorFactory (в новом поле) для извлечения имени файла из URL.

4. это сработало.. Я скопировал то же самое и извлек имя изображения в новое поле, используя solr.RegexReplaceProcessorFactory , но я боюсь, что новое содержимое поля не используется для поиска. Я не получаю от них результатов. У вас есть какие-либо идеи.?

5. Это действительно больше зависит от вашей конфигурации Solr и от того, какой анализатор запросов вы используете. Например, если вы используете / можете использовать анализатор запросов DisMax, вы можете использовать qf параметр (см. solr.apache.org/guide/8_0 /… ). Другой вариант — иметь дополнительное поле для поиска, использовать copyField в вашей схеме для копирования из других полей в это поле «пакет текста» и определить его как поле поиска по умолчанию ( df параметр). Вы также можете изменить свой запрос content:bla OR filename:bla следующим образом.