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를 사용하며 쿼리 중에 활성화 된 검색자가 사용하는 유사성을 설정하기위한 후크를 찾을 수 없었습니다.