Работа с пустыми полями

Я новичок в Stormcrawler и elasticsearch в целом. В настоящее время я использую Stormcrawler 2.0 для индексации данных веб-сайтов (включая элементы, не относящиеся к HTML, такие как документы PDF и Word) в elasticsearch. В некоторых случаях метаданные документов PDF или Word не содержат заголовок, поэтому поле сохраняется пустым / нулевым в elasticsearch. К сожалению, это вызывает проблемы в веб-приложении, которое я использую для отображения результатов поиска (search-ui). Есть ли способ, чтобы Stormcrawler вставлял значение по умолчанию Без названия в поле заголовка, если его нет в метаданных?

Я понимаю, что у elasticsearch есть параметр поля null_value, но если я правильно понимаю, этот параметр не может использоваться для текстовых полей и помогает только при поиске.

Спасибо!


person Will    schedule 24.07.2020    source источник
comment
Совершенно уверен, что null_value можно использовать для текстовых полей. Единственное ограничение, которое имеет null_value в соответствии с последними документами, состоит в том, что он должен быть того же типа данных, что и поле. elastic.co/guide/en/elasticsearch/reference/ текущий /   -  person IanGabes    schedule 25.07.2020


Ответы (1)


Один из вариантов - написать собственный ParseFilter, чтобы присвоить произвольное значение любому отсутствующему ключу или ключу с пустым значением. В коде StormCrawler довольно много примеров ParseFilters, см. также WIKI.

То же самое можно сделать, разместив специальный Bolt между анализатором и индексатором; возьмите метаданные и нормализуйте их по своему усмотрению.

person Julien Nioche    schedule 24.07.2020
comment
Жюльен, спасибо за руководство по этому вопросу и за всю вашу тяжелую работу над Stormcrawler. Ваши обучающие видео очень помогли, и я надеюсь увидеть больше в будущем. - person Will; 25.07.2020
comment
пожалуйста, Уилл. Пожалуйста, свяжитесь с нами, если вы хотите, чтобы следующее видео было посвящено чему-то конкретному. - person Julien Nioche; 01.08.2020