I think it is ok. It is good no need to use a Similarity instance for each query.
2010/11/19 Mattias Persson <matt...@neotechnology.com> > There's also a problem going with the QueryContext approach... an > IndexSearcher can be shared by multiple threads and multiple queries so > using IndexSearcher#setSimilarity can't be done on a per-query basis. > Setting a similarity in one query may also set it for another thread/query > which might not want it. So maybe the only option is to go with the > configuration parameter, so that all IndexWriters and IndexSearchers for > that index gets that Similarity instance set. > > WDYT? > > 2010/11/18 Mattias Persson <matt...@neotechnology.com> > > > Allright, then there probably have to be a configuration parameter for > > similarity, and maybe something in QueryContext as well (if you wouldn't > use > > the configuration parameter). > > > > > > 2010/11/18 Samuel Feng <okos...@gmail.com> > > > >> 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 > < > http://lucene.apache.org/java/2_4_0/api/org/apache/lucene/search/Similarity.html#lengthNorm%28java.lang.String > > > >> , > >> int)>*(field)< > >> > http://lucene.apache.org/java/2_4_0/api/org/apache/lucene/search/Similarity.html#lengthNorm(java.lang.String > < > http://lucene.apache.org/java/2_4_0/api/org/apache/lucene/search/Similarity.html#lengthNorm%28java.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 > >> > > > > > > > > -- > > Mattias Persson, [matt...@neotechnology.com] > > Hacker, Neo Technology > > www.neotechnology.com > > > > > > -- > 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