#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
следующим образом.