Библиотека для поиска неструктурированного текста на Android - PullRequest
2 голосов
/ 19 августа 2011

Я пишу приложение для Android, в котором мне нужно быстро найти большой объем текста. Текст исправлен; Я хотел бы вычислить индексы в автономном режиме и отправить их вместе с приложением. Вот требования к поисковой библиотеке (цифры 1-5 являются критическими):

  1. Должен поддерживать набор символов Unicode.
  2. При поиске необходимо найти произвольные подстроки в тексте (а не только термины или префиксы терминов).
  3. Поиск должен вернуть все совпадения.
  4. Библиотека должна быть максимально легкой. В частности, должна быть возможность удалить индексирующие (и другие) части библиотеки и упаковать приложение только с API поиска.
  5. Лицензия библиотеки должна позволять использовать ее в проприетарной совместной работе.
  6. Нет необходимости в морфологическом анализе (stemming) или обработке стоп-слов.
  7. Поиск по шаблону и / или регулярному выражению был бы полезен, но не обязателен.
  8. Поиск по близости также был бы хорош.
  9. Аналогично логическому поиску.

FTS3 (который поставляется с SQLite) хорош в отношении требования 4, но, к сожалению, не удовлетворяет требованию 2. (Он может найти префиксы терминов, но не суффиксы & mdash; поиск «eat» может найти «eat», но "место".)

Я просмотрел несколько библиотек, в том числе Lucene, Minion и egothor. Кажется, все они загружены замечательными функциями, которые мне не нужны. У меня также сложилось впечатление (хотя это может быть и неправильно), что было бы сложно разделить эти библиотеки и просто упаковать API поиска. (Я также слышал, что заставить Lucene работать на Android сложно, потому что он опирается на java.rmi, который отсутствует в Java для Android.)

Кто-нибудь знает библиотеку, которая делает то, что мне нужно (или может быть адаптирована)? Я не против портировать API поиска с другого языка на Java, если библиотека в противном случае отвечает требованиям.

1 Ответ

1 голос
/ 07 января 2014

Apache Lucy - свободный порт Lucene к C - может стоить посмотреть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...