Я ищу хороший механизм индексирования с открытым исходным кодом (с LGPL или разрешающей лицензией) для приложения node.js, что-то вроде Lucene. Я ищу индексирование и поиск в процессе и не интересуюсь серверами индексирования, такими как Sphinx или Solr.
Я не боюсь создавать привязки для библиотеки C/С++, поэтому я также открыт для этих предложений.
До сих пор я нашел
- node -clucene, который, похоже, больше не поддерживается (и имеет несколько открытых проблем).
- Я мог бы создать свою собственную привязку для CLucene, но, похоже, она довольно редко поддерживается, и ее текущая версия также вполне позади Java Lucene
- Apache Lucy, который, как представляется, предназначен для создания привязок для динамических языков, но до сих пор у них нет привязок node (а не C API), и у меня нет нашел какие-либо документы о создании привязок. Я также не нашел каких-либо критериев производительности.
- node -search, который кажется заброшенным
- jsii, который по-прежнему остается прототипом и также оставлен
- полнофункциональный, предназначенный только для работы в веб-браузере
- lunr.js, который, по-видимому, разрешает сериализацию всего индекса, поэтому он не масштабируется
Я мог бы "сворачивать свой собственный", но я предпочел бы использовать уже существующее решение.
EDIT: Почему меня не интересует автономный сервер индексирования: я использую быструю базу данных хранения ключевого значения в процессе, поэтому для запросов было бы довольно ненужным тратить время.