From http://lucene.apache.org/java/2_4_0/api/org/apache/lucene/search/Similarity.html
<http://lucene.apache.org/java/2_4_0/api/org/apache/lucene/search/Similarity.html>If the custom Similarity overwrite the *lengthNorm<http://lucene.apache.org/java/2_4_0/api/org/apache/lucene/search/Similarity.html#lengthNorm(java.lang.String, int)>*(field)<http://lucene.apache.org/java/2_4_0/api/org/apache/lucene/search/Similarity.html#lengthNorm(java.lang.String, int)> method of DefaultSimilarity, need to set the Similarity during writing index. 2010/11/19 Mattias Persson <matt...@neotechnology.com> > 2010/11/18 Samuel Feng <okos...@gmail.com> > > > Hi, > > > > To my understanding, if you use one > > Similarity in indexWriter, you should also use it in indexSearcher. > > > > And the scoring is not written during writing index, as it depends on the > > relationship between query terms and the indexed documents. It is > > calculated > > for each query. > > > > But is it a benefit to use it in writer and/or searcher? Is the similarity > needed at all during writing? > > > > > > > > 2010/11/18 Mattias Persson <matt...@neotechnology.com> > > > > > > > Hi, > > > > > > > > > > > > >> > > I am new to neo4j. > > > >> > > > > > >> > > I am using a custom analyzer in index in order to support > Chinese. > > > >> > > > > > >> > > chnIndex = this.graphDb.index().forNodes("product_chinese", > > > >> > > MapUtil.stringMap("analyzer", > > > >> > > "org.wltea.analyzer.lucene.IKAnalyzer")); > > > >> > > > > > >> > > Below is the usage of the IKAnalyzer in lucence. > > > >> > > > > > >> > > IndexSearcher isearcher = new IndexSearcher(directory); > > > >> > > isearcher.setSimilarity(new IKSimilarity()); // A custom > > > >> > Similarity > > > >> > > String word = "OLYMPUS 奥林巴斯 E-PL1 时尚白 微型4/3系统相机 套机 > > 含14-42mm镜头"; > > > >> > > Query query = IKQueryParser.parse(fieldName, word ); // A > > > custom > > > >> > > QueryParser > > > >> > > TopDocs topDocs = isearcher.search(query, 5); // Got the > top > > 5 > > > >> > > System.out.println("Found " + topDocs.totalHits); > > > >> > > ScoreDoc[] scoreDocs = topDocs.scoreDocs; > > > >> > > for (int i = 0; i < topDocs.totalHits; i++) { > > > >> > > System.out.println(scoreDocs[i].score); // Got the score > of > > > >> each > > > >> > > matched doc > > > >> > > Document targetDoc = isearcher.doc(scoreDocs[i].doc); > > > >> > > System.out.println("Document content is " + > > > >> targetDoc.toString()); > > > >> > > } > > > >> > > > > > >> > > How can I use the query method of neo4j's indexing to implement > > > >> > > 1) Add my custom Similartiy implemtation > > > >> > > > > > > > Btw, what's the difference between setting Similarity on IndexWriter > vs. > > > IndexSearcher? Is it performance maybe, that if it's set on the > > IndexWriter > > > then the scoring is written during writes, but if it's set on > > IndexSearcher > > > it's calculated for each query? > > > _______________________________________________ > > > Neo4j mailing list > > > User@lists.neo4j.org > > > https://lists.neo4j.org/mailman/listinfo/user > > > > > _______________________________________________ > > Neo4j mailing list > > User@lists.neo4j.org > > https://lists.neo4j.org/mailman/listinfo/user > > > > > > -- > Mattias Persson, [matt...@neotechnology.com] > Hacker, Neo Technology > www.neotechnology.com > _______________________________________________ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > _______________________________________________ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user