2012-12-16 4 views
0

저는 neo4j-lucene-index 라이브러리가 제공하는 지원을 통해 Neo4j (1.9)와 lucene core 3.5를 사용하고 있습니다. 내 코드에서 , 나는 그런 새로운 노드 인덱스 생성 :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를 ​​사용하며 쿼리 중에 활성화 된 검색자가 사용하는 유사성을 설정하기위한 후크를 찾을 수 없었습니다.

답변