私はVersion.Lucene_29
を使用しています。私は次のことを行うことができ、通常の文字列のクエリメソッドを使用:LuceneのMultiFieldQueryParserの使い方は?
Directory directory = new FSDirectory(...);
//Start Lucene retrieval.
IndexSearcher iSearch = new IndexSearcher(directory, true);
Analyzer analyzer = new WhitespaceAnalyzer();
QueryParser parser = new QueryParser(Version.LUCENE_29, "content", analyzer);
String str = 'filename:testfile.txt AND filetext:"Singapore food"'
Query query = parser.parse(str);
ScoreDoc[] hits = iSearch.search(query, 1000).scoreDocs;
どのように私は、文字列のクエリ方法と同様のLuceneでMultiFieldQueryParserを使用してクエリを発射しますか?
MultiFieldQueryParser multiParser = new MultiFieldQueryParser(
Version.LUCENE_29, new String[] {"content", "ne"}, analyzer);
str = ???
Query = ????
ScoreDoc[] hits = iSearch.search(query, 1000).scoreDocs;
:「タイトル」とフィールド。 "ソフトウェア開発"では、 'MultiFieldQueryParser.setDefaultOperator(Operator.AND)'も設定する必要があります。そうでなければ、 "ソフトウェア" ** OR ** "開発"を含むすべての結果が見つかります。 – Feyyaz