Lucene Beispiel-Abfrage

Wenn ich Suche nach Satz "ph1 ph2" er findet Texte, die enthält "ph1" oder "ph2".

String line = "ph1 ph2";           
QueryParser parser = new QueryParser(Version.LUCENE_CURRENT, field, analyzer);
Query query = parser.parse(line);  

Jemand weiß, wie man die Suche von 1) Satz ("ph1 ph2"). Beispiel: Dies ist Satz ph1 ph2. 2) der Satz mit der maximalen Distanz("ph1 ph2 ~3"). Beispiel Diese ph1 ist Satz ph2.

P. S ich verwendet standard-Lucene-Indexer index meine Dateien. Wenn dieses Beispiel ist nicht klar, anzeigen http://www.lucenetutorial.com/lucene-query-syntax.html

Hier ist der vollständige code:

String index = "C:/programs/lucenedemo/index";
    String field = "contents";                    
    IndexReader reader = DirectoryReader.open(FSDirectory.open(new File(index)));
    IndexSearcher searcher = new IndexSearcher(reader);
    Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_40);
    //QueryParser parser = new QueryParser(Version.LUCENE_40, field, analyzer);          
    String line = "ph1 ph2";           
    QueryParser parser = new QueryParser(Version.LUCENE_CURRENT, field, analyzer);
    Query query = parser.parse(line);                     
    //doPagingSearch(searcher, query, hitsPerPage, raw, queries == null && queryString == null);         
    //doPagingSearch

    TopDocs results = searcher.search(query, 300000);
    ScoreDoc[] hits = results.scoreDocs;        
    System.out.println(results.totalHits);

    for (int i=0;i<10;i++) {    
    Document doc = searcher.doc(hits[i].doc);
        String path = doc.get("path");
        if (path != null) System.out.println((i+1) + ". " + path);                          
    } 

    //end of doPagingSearch
    reader.close();
Schreibe einen Kommentar