2017-06-03 58 views

回答

0

我不知道的任何事情都沒有建立索引來實際運行查詢。但是,您可以非常容易地在內存中創建臨時索引。您需要提供至少至少這樣的方法,但是,an analyzer

所以,你可以創建一個doesMatch方法是這樣的:

public static boolean doesMatch(String query, String doctext, Analyzer analyzer) throws IOException, ParseException { 
    Directory dir = new RAMDirectory(); 
    IndexWriterConfig config = new IndexWriterConfig(analyzer); 
    IndexWriter writer = new IndexWriter(dir, config); 
    Document doc = new Document(); 
    doc.add(new TextField("text", doctext, Field.Store.NO)); 
    writer.addDocument(doc); 
    writer.close(); 

    IndexReader reader = DirectoryReader.open(dir); 
    IndexSearcher searcher = new IndexSearcher(reader); 
    QueryParser parser = new QueryParser("text", analyzer); 
    Query parsedQuery = parser.parse(query); 
    TopDocs results = searcher.search(parsedQuery, 1); 

    reader.close(); 
    dir.close(); 

    return results.totalHits == 1; 
} 
+0

是否確定用它來發現哪些單詞在查詢匹配命中文件? –

相關問題