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

Reply via email to