获取docId后,在特定文档内搜索

时间:2016-04-29 04:00:31

标签: java lucene

Iam尝试实现一个2阶段搜索,首先搜索文档标题(存储为StringField),并在获取匹配文档的docId之后我想搜索字符串内部该文档的内容(存储为TextField),然后使用常用的荧光笔突出显示

EDIT 改述这个问题 这不是实际问题。我只是尝试(我最好的)避免错误/无用的答案

鉴于docIdQuery对象搜索Query对象里面指定的查询docId < / p>

2 个答案:

答案 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);
        }

    }