Функция поиска Cloudant

Видел эту относительно старую запись в блоге о функция поиска Cloudant.

Искал ответы на некоторые вопросы, так как мы используем надстройку Cloudant Heroku и должны поддерживать поисковые запросы:

  • Можно ли хранить поисковые индексы на основе Lucene ВНУТРИ самой CouchDB, чтобы при репликации БД (скажем, в Couchbase/CouchDB на мобильных устройствах) вместе с ней поступали и данные индекса?

  • Будет ли индексирование работать в реплицированных базах данных CouchDB или ТОЛЬКО в Cloudant?

  • Что, если у нас есть PDF-файлы, хранящиеся в виде вложений в документах CouchDB? Есть ли встроенная поддержка индексации и поиска таких полей? Должны ли мы анализировать PDF-файлы и писать собственные анализаторы, которые затем импортируем в Cloudant?

  • Каков наилучший возможный подход, если мы хотим поддерживать поиск содержимого «вложений» PDF в CouchDB, которые реплицируются из Cloudant в локальные экземпляры CouchDB на мобильных устройствах?

Было бы здорово, если бы кто-нибудь мог дать несколько советов по их достижению через Cloudant.

Я знаю, что есть несколько альтернатив, таких как CouchDB-Lucene, как уже упоминалось здесь.

Но поскольку мы используем Cloudant в качестве центральной CouchDB, было любопытно узнать, можно ли это сделать легко.

Спасибо


person fritz    schedule 23.04.2013    source источник
comment
Имейте в виду, что Couchbase и CouchDB — это два разных проекта, как вы можете видеть здесь couchbase.com/couchbase- vs-couchdb   -  person Tug Grall    schedule 24.04.2013
comment
Да, я знаю. А пока предположим, что это CouchDB в обоих местах. (Но дело в том, что у нас есть CouchDB на Cloudant и Couchbase-mobile на устройствах Android). Хотите знать, должны ли мы использовать что-то вроде CouchDB-Lucene на самих устройствах? Потому что именно здесь нам нужен поиск?   -  person fritz    schedule 24.04.2013


Ответы (1)


Можно ли хранить поисковые индексы на основе Lucene ВНУТРИ самой CouchDB, чтобы при репликации БД (скажем, в Couchbase/CouchDB на мобильных устройствах) вместе с ней поступали и данные индекса?

Индексы поиска в Cloudant всегда хранятся вне базы данных. Как и данные просмотра, они не будут реплицироваться. В противном случае мы не смогли бы использовать высокооптимизированный формат Lucene на диске.

Будет ли индексирование работать в реплицированных базах данных CouchDB или ТОЛЬКО в Cloudant?

Поисковое индексирование будет работать только в Cloudant (с использованием поля «индексы» в проектном документе). Вам потребуется отдельное решение для мобильного устройства или реплицированный экземпляр vanilla-CouchDB.

Что, если у нас есть PDF-файлы, хранящиеся в виде вложений в документах CouchDB? Есть ли встроенная поддержка индексации и поиска таких полей? Должны ли мы анализировать PDF-файлы и писать собственные анализаторы, которые затем импортируем в Cloudant?

В настоящее время вам нужно самостоятельно проанализировать текст из PDF-файла, используя что-то вроде Tika, и сохранить его в поле в вашем документе, которое затем индексируется поиском. Пользовательские анализаторы вряд ли будут поддерживаться, хотя в какой-то момент может появиться поддержка индексации двоичных файлов.

Каков наилучший возможный подход, если мы хотим поддерживать поиск содержимого «вложений» PDF в CouchDB, которые реплицируются из Cloudant в локальные экземпляры CouchDB на мобильных устройствах?

Это зависит от платформы. Поскольку вы уже проанализировали текст PDF для использования в поиске Cloudant, вы можете использовать API локального поиска на устройстве. К сожалению, они пока немного слабы на земле, и у меня еще не было времени попробовать что-нибудь для себя. Жаль, насколько я могу судить, SearchKit пока недоступен на iOS.

Или вы можете искать в Интернете с помощью поиска Cloudant, а затем извлекать документы из локальной базы данных, поскольку у вас есть идентификаторы документов.

person Mike Rhodes    schedule 28.04.2013