在使用lucene时,怎么设置搜索方式让输入短语(如管理信息系统),输出结果中必须带有管理,信息和系统?
public ScoreDoc[] SearchIndex(String searchplace, String searchkey) throws Exception {
Directory directory = FSDirectory.open(new File("F:\\temp\\index"));
IndexReader indexReader = DirectoryReader.open(directory);
IndexSearcher indexSearcher = new IndexSearcher(indexReader);
IKAnalyzer analyzer = new IKAnalyzer();
QueryParser parser = new QueryParser(searchplace, analyzer);
Query query = parser.parse(searchkey);
TopDocs topDocs = indexSearcher.search(query, 100);
ScoreDoc[] scoreDocs = topDocs.scoreDocs;
System.out.println("共有 " + topDocs.totalHits + " 条匹配的结果");
System.out.println("共有 " + scoreDocs.length + " 条匹配的结果");
System.out.println("-----------------------------------------------------------------");
for (ScoreDoc scoreDoc : scoreDocs) {
int doc = scoreDoc.doc;
Document document = indexSearcher.doc(doc);
// 文件名称
String fileName = document.get("fileName");
System.out.println(fileName);
// 文件内容
String fileContent = document.get("fileContent");
System.out.println(fileContent);
// 文件大小
String fileSize = document.get("fileSize");
System.out.println(fileSize);
// 文件路径
String filePath = document.get("filePath");
System.out.println(filePath);
System.out.println("-----------------------------------------------------------------");
}
indexReader.close();
return scoreDocs;
}
我这么写的代码,假如搜索词是管理信息系统,输出结果会是带有管理、信息或者系统的文件,怎么把或者改成都要出现?