индексация и поиск текстовых файлов в ruby ​​и sinatra - PullRequest
1 голос
/ 22 марта 2012

Я делаю вики с Ruby и Sinatra и мне нужно искать вики, которые хранятся в виде текстовых файлов с разметкой в ​​нескольких HTML-рендерерах (redcarpet, markdown, creole, slim, haml ...). У вас есть много вариантов в Ruby, таких как драгоценные камни ferret, solr или lucene, которые обрабатывают структурированные данные в базе данных, но не для поиска файлов со свободным текстом.

Пока я открываю текстовые файлы и ищу с помощью regExp, но по мере роста вики это будет слишком медленным. Существуют ли какие-либо драгоценные камни, которые индексируют все текстовые файлы на карте и какой индекс я могу затем использовать для поиска файлов? Это должно быть решение только для Ruby или что-то, что можно легко использовать из Ruby.

Я не использую одну из распространенных вики, поскольку ни одна из них не обладает необходимыми мне функциями.

Я использую службу индексирования Windows в нескольких старых приложениях ASP, но я не доволен этим решением.

Моими операционными системами являются Windows Vista, 7 и Windows Server 8.

РЕДАКТИРОВАТЬ: установка базы данных не требуется / предпочтительнее использовать сервер без поддержки, поэтому, например, с sqlite или файловым хранилищем или чем-то подобным

Ответы [ 3 ]

2 голосов
/ 02 августа 2012

Лично я бы выбрал ElasticSearch: http://www.elasticsearch.org/

Очень легко начать работать, и есть несколько драгоценных камней, которые позволяют легко общаться с ним из Ruby (например, из шин)

Мне неизвестны какие-либо эффективные механизмы полного поиска на основе текстовых файлов, поэтому я действительно думаю, что вам лучше всего будет поискать простой сервер, который ElasticSearch предоставляет imho.

2 голосов
/ 30 июля 2012

Взгляните на ThinkingSphinx, рубиновый мост между Sphinx и ActiveRecord. Использование этого драгоценного камня позволит вам легко индексировать ваши модели, а также выполнять простой поиск и полнотекстовый поиск по всем моделям вашего приложения.
Домашняя страница и документация проекта:
http://freelancing -god.github.com / ц / ы /
Хорошее небольшое введение о том, как его использовать:
http://www.synbioz.com/blog/2012/05/18/full_text_search_with_sphinx
Я считаю, что интеграция с Sinatra была бы бесшовной, если работать с ActiveRecord.

1 голос
/ 31 июля 2012

Я использовал Solr с базами данных SQL и Mongo в Rails 2.3 - 3.2, и до сих пор у меня все получалось.Взгляните на этот Railscast .Solr - это Java-клиент для полнотекстового поиска, разработанный Apache, который может индексировать документы Microsoft, текстовые файлы, документы форматированного текста и даже выполнять распознавание изображений.

...