Iam尝试实现一个2阶段搜索,首先搜索文档标题(存储为StringField
),并在获取匹配文档的docId
之后我想搜索字符串内部该文档的内容(存储为TextField
),然后使用常用的荧光笔突出显示
EDIT 改述这个问题 这不是实际问题。我只是尝试(我最好的)避免错误/无用的答案
鉴于docId
和Query
对象搜索Query
对象里面指定的查询,docId
< / p>
答案 0 :(得分:0)
在Solr中使用Apache Tika来提取和索引文档文本。文档可以是文本文件,PDF,PPT,XLS,DOC等。
答案 1 :(得分:0)
如果您使用Java查询索引,请尝试使用此方法。来源here
public static void searchIndex(String searchString) throws IOException, ParseException {
System.out.println("Searching for '" + searchString + "'");
Directory directory = FSDirectory.getDirectory(INDEX_DIRECTORY);
IndexReader indexReader = IndexReader.open(directory);
IndexSearcher indexSearcher = new IndexSearcher(indexReader);
Analyzer analyzer = new StandardAnalyzer();
QueryParser queryParser = new QueryParser(FIELD_CONTENTS, analyzer);
Query query = queryParser.parse(searchString);
Hits hits = indexSearcher.search(query);
System.out.println("Number of hits: " + hits.length());
Iterator<Hit> it = hits.iterator();
while (it.hasNext()) {
Hit hit = it.next();
Document document = hit.getDocument();
String path = document.get(FIELD_PATH);
System.out.println("Hit: " + path);
}
}