2

在問這個問題之前,我已經搜索了很多關於我的問題。我需要在spring框架中從mongodb進行全文搜索。到目前爲止,我只是用正則表達式來嘗試一些東西,但它不包含我的需求。 例如,我有一個搜索字符串作爲「增加的世界人口」,我的搜索算法應該返回匹配的文檔以匹配搜索字符串或文檔,其中至少包含搜索字符串中的一個字詞。我知道Lucene做全文搜索,但我不知道如何用我的mongodb spring數據實現它,我不知道春天的數據是否已經提供全文搜索。我需要一個解釋這個的教程。 我做了什麼到現在:如何用mongodb彈簧數據進行全文搜索?

Criteria textCriteri = Criteria.where("title").regex(searchStr.trim().replaceAll(" +", " "), "i"); 
Query query = new Query(locationCriteria).addCriteria(textCriteri).limit(Consts.MONGO_QUERY_LIMIT); 
List<MyObject> advs = mongoTemplate.find(query, MyObject.class); 

回答

0

您可以在MongoDB中創建一個「文本」指數並通過搜索,看到http://docs.mongodb.org/manual/core/index-text/

根據您的搜索查詢,您可能需要使用更像ElasticSearch這樣強大的搜索引擎(如你所說的Lucene)。

+0

我已經爲我的集合中的標題字段設置了文本索引。我只是不知道如何編寫我的查詢,或使用lucene。或者,如果可以用正則表達式來做到這一點(就像我在我的問題中強調的那樣),我也可以使用它。因爲我現在不需要非常強大的搜索功能。 – gabby