2013-08-02 37 views
0

我在其中Highlighter.getBestFragments像查詢時返回正確的應用程序中輸入「全文:rajath:rajath和文件路徑」。但是,如果同一個查詢包含「/」中的文件路徑進入,這意味着如果查詢是像「全文:rajath和文件路徑:rajath/rajath1」,Highlighter.getBestFragments方法返回一個空字符串。請讓我知道如何解決這個問題。我懷疑這個問題是由於查詢中的正斜槓造成的。有什麼辦法可以逃脫它嗎?Lucene的Highlighter.getBestFragments方法的返回空字符串時,查詢包含正斜槓

目前我使用Lucene 2.9.3在我的應用程序,其中突出顯示不正確發生。但查詢「全文:rajath和文件路徑:rajath/rajath1」使用正確高亮關鍵字rajath在Lucene的2.2.0。在2.2.0和2.9.3中輸入「fulltext:rajath AND filepath:rajath/rajath1」時,內部查詢變爲[+ fulltext:rajath + filepath:「rajath rajath1」]

回答

0

in Lucene 4.x正斜槓(/)現在是一個特殊字符,其被用於用信號通知一個正則表達式搜索。您將需要escape your slashes,如:

String query = "filepath:rajath\\/rajath1"; 

或者你可以有lucene do the escaping給你,如:

String searchfor = "rajath/rajath1"; 
String escapedsearch = QueryParserBase.escape(searchfor); 
String query = "filepath:" + escapedsearch; 
+0

目前,我在我的應用程序,其中突出顯示不正確發生使用Lucene 2.9.3。但查詢「全文:rajath和文件路徑:rajath/rajath1」使用正確高亮關鍵字rajath在Lucene的2.2.0。在2.2.0和2.9.3中輸入「fulltext:rajath AND filepath:rajath/rajath1」時,內部查詢將變爲[+ fulltext:rajath + filepath:「rajath rajath1」]。 – Rajath

相關問題