2012-12-16 72 views
0

我使用Neo4j(1.9)和lucene核心3.5,通過neo4j-lucene-index庫提供的支持。 在我的代碼,我創建了一個新的節點索引這樣的:Neo4j節點索引:如何更改Lucene的默認相似度?

HashMap<String, String> stringMap = new HashMap<String, String>(); 
    stringMap.put("type", "fulltext"); 
    stringMap.put(IndexManager.PROVIDER, "lucene"); 
    stringMap.put("to_lower_case", "false"); 
    stringMap.put("similarity", MySimilarity.class.getName()); 
    stringMap.put("analyzer", MyAnalyzer.class.getName()); 
    simpleIndex = (LuceneIndex<Node>) template.getGraphDatabaseService() 
      .index().forNodes("simple-index", stringMap); 

,並通過多領域查詢的方式查詢節點索引:

Analyzer analyzer = new MyAnalyzer(); 
    Query query = null; 
    try { 
     query = MultiFieldQueryParser.parse(Version.LUCENE_35, 
       queriesArray, fieldsArray, flagsArray, analyzer); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
     return; 
    } 
    if (query == null) 
     return; 
    QueryContext qc = new QueryContext(query).sortByScore(); 
    IndexHits<Node> hits = simpleIndex.query(qc); 

我怎樣才能改變相似實施,用於按分數排序,MySimilarity類(它擴展了DefaultSimilarity並覆蓋了它的一些方法)?報告的查詢總是使用DefaultSimilarity,並且我無法找到任何掛鉤來設置在我的查詢期間激活的搜索器所使用的相似性。

回答