1
我在寫索引器的界面和設計方法:如何解析搜索字符串沒有字段限制在lucene中?
List<MyDocument> search(String query, int start, int end);
這種方法就像jdbc
搜索方法:傳遞一個sql
串並返回。
但是,當我試圖用lucene來實現,我沒有找到一種方法來解析查詢字符串到查詢對象。
我知道QueryParser和MultiFieldQueryParser,但他們需要預先準備好指定要搜索的字段。在我的界面中,哪些字段將被搜索不預先知道。
例如:
(title: help) AND (author: me) AND (content: plz)
title
領域,author
和content
是預先未知的。如何在lucene中搜索這些未知域的查詢?
有什麼辦法可以幫到我嗎?
您的示例提供了兩個字段,標題和默認值。如果我處理這個字符串,我必須至少爲QueryParser指定「標題」。問題是我不知道哪個字段會通過,或者你的意思是我必須編寫一個語法分析器並分析出「title」這個詞... – FredSuvn
對於查詢:'(title:help)AND(author:me )AND(content:plz)',默認的字段參數***不重要***。您不*需要將標題,作者或內容傳遞給解析器,以便在查詢字符串中使用它們。 – femtoRgon
我關心的是解析查詢字符串,而不是查詢字符串本身。構造一個QueryParser對象應該指定一個字段,我的問題是如何從查詢字符串中解析出需要的字段。我希望lucene具有可以自動分析sql字符串的jdbc等API。 – FredSuvn