2013-01-11 75 views
1

我正在開發基於Java的應用程序。它在存儲文件的後端有mongo db(在gridFS中)。我使用Spring框架與蒙戈db.I互動要搜索目前的案文中存儲的文件(PDF,DOC,TXT文件)。我知道mongo db支持全文搜索(從2.4開始)。我的問題是春-mongo全文搜索

  1. 是否支持spring framework?全文搜索?還是應該藉助solr或lucene?
  2. 如果兩個以上的可能是一個更好的選擇?
  3. 有關索引的問題嗎?我沒有太多關於索引全文搜索的知識
  4. 什麼時候可以使用2.4?

回答

2

1 Spring在其核心功能中不支持全文搜索,但是在spring-data項目中有兩個子項目允許與solr和elasticsearch進行交互,它們都是全文搜索引擎內置的Apache Lucene的頂部,有關詳細信息,看看這些鏈接:

https://github.com/dadoonet/spring-elasticsearch

您的需求

https://github.com/SpringSource/spring-data-solr

2只取決於Lucene是一個低級別的庫,而elasticsearch和Solr都出來了內置了Lucene箱體頂部的搜索引擎,我認爲elasticsearch提供的MongoDB更好的集成,通過MongoDB的河流支持GridFS的附件的索引。看看這些鏈接:

http://www.elasticsearch.org/

https://github.com/richardwilly98/elasticsearch-river-mongodb/

3,您需要澄清這個問題。

4我不知道什麼時候可以使用mongodb版本2.4,但不要忘記全文搜索仍然是一個實驗性功能,並且我認爲該功能仍然不支持gridFS。

1

MongoDB的文本搜索拉不出來的文本PDF,DOC,或者,對於這個問題,存儲在GridFS的任何文件。從MongoDB的角度來看,GridFS文件是未解釋的二進制文件。

如果您想要使用MongoDB的新文本搜索功能來搜索不同的文件類型,您需要在應用程序中完成這些工作,從這些文件中提取文本並將文本添加到您明確插入的文檔中進入MongoDB。您可以使用現有庫如Apache Tika來完成繁重的工作。請注意,Tika是Solr/Lucene用於從富文本文檔類型中提取文本的工具。

至於MongoDB中的文本搜索索引,請參考發行說明here