[
https://issues.apache.org/jira/browse/LUCENE-2236?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12985349#action_12985349
]
Doron Cohen commented on LUCENE-2236:
-------------------------------------
Robert, thanks for renaming back to Similarity.
I reviewed the patch - it looks good to me, just technical simple comments here
(it may seem a long list but these are really just simple changes)
* *Similarity*:
** line 365: should be
*** {@link SimilarityProvider#coord(int, int) coord(q,d)}
** line 565: should be:
*** @see
org.apache.lucene.index.IndexWriterConfig#setSimilarityProvider(SimilarityProvider)
*** @see IndexSearcher#setSimilarityProvider(SimilarityProvider)
* *InstantiatedIndexWriter* & *MemoryIndex* & *DocumentWriter* & *DocState* &
*BooleanQuery*
** methods and member should be named similar to IndexSearcher:
*** similarityProvider
*** getSimilarityProvider()
*** setSimilarityProvider(SimilarityProvider similarityProvider)
* *MIGRATE.txt* - I think it should read like this:
** DefaultSimilarity can no longer be set statically (and dangerously) for the
entire JVM.
Instead, IndexWriterConfig and IndexSearcher now take a SimilarityProvider.
Similarity can now be configured on a per-field basis.
Similarity retains only the field-specific relevance methods such as tf() and
idf().
Methods that apply to the entire query such as coord() and queryNorm() exist
in SimilarityProvider.
* IndexWriterConfig javadocs lines 240-241 should discuss SimilarityProvider
(not Similarity)
* Would it be cleaner to have a new class DefaultSimilarityProvider which would
return DefaultSimilarity? not sure, but thought it's worth mentioning.
* *IndexSearcher*
** javadoc in line 78:
"In general, this should not be used."
Is that so? I would like to believe that in general the default is pretty
good.
* *TestIndexReaderCloneNorms* the "TODO" added there can be fixed (not too
efficiently, but okay for the test I think) like this:
{code}
private Document newDoc() {
Document d = new Document();
for (int i = 0; i < 10; i++) {
String fname = "f" + i;
Field f = newField(fname, "v" + i, Store.NO, Index.NOT_ANALYZED);
float boost = nextNorm(fname);
f.setBoost(boost);
d.add(f);
}
return d;
}
// return unique norm values that are unchanged by encoding/decoding
private float nextNorm(String fname) {
float norm = lastNorm + normDelta;
do {
Similarity sim = new DefaultSimilarity().get(fname);
{code}
* *TestNorms* - can fix the "bogus" TODO similar to the above code snippet.
> Similarity can only be set per index, but I may want to adjust scoring
> behaviour at a field level
> -------------------------------------------------------------------------------------------------
>
> Key: LUCENE-2236
> URL: https://issues.apache.org/jira/browse/LUCENE-2236
> Project: Lucene - Java
> Issue Type: Improvement
> Components: Query/Scoring
> Affects Versions: 3.0
> Reporter: Paul taylor
> Assignee: Robert Muir
> Fix For: 4.0
>
> Attachments: LUCENE-2236.patch, LUCENE-2236.patch
>
>
> Similarity can only be set per index, but I may want to adjust scoring
> behaviour at a field level, to faciliate this could we pass make field name
> available to all score methods.
> Currently it is only passed to some such as lengthNorm() but not others such
> as tf()
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]