[ 
https://issues.apache.org/jira/browse/LUCENE-4049?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Muir resolved LUCENE-4049.
---------------------------------

    Resolution: Not A Problem

setRewriteMethod(SCORING_BOOLEAN_QUERY_REWRITE)
                
> PrefixQuery (or it's superclass MultiTermQuery) ignores index time boosts
> -------------------------------------------------------------------------
>
>                 Key: LUCENE-4049
>                 URL: https://issues.apache.org/jira/browse/LUCENE-4049
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: core/search
>    Affects Versions: 3.5, 3.6
>         Environment: Java
>            Reporter: Michael Wyraz
>
> It is possible to set boost to fields or documents during indexing, so 
> certain documents can be boostes over others. This works well with TermQuery 
> or FuzzyQuery but not with PrefixQuery which ignores the individual values.
> Test Code below:
> import java.io.IOException;
> import org.apache.lucene.analysis.standard.StandardAnalyzer;
> import org.apache.lucene.document.Document;
> import org.apache.lucene.document.Field;
> import org.apache.lucene.index.IndexReader;
> import org.apache.lucene.index.IndexWriter;
> import org.apache.lucene.index.IndexWriterConfig;
> import org.apache.lucene.index.Term;
> import org.apache.lucene.search.IndexSearcher;
> import org.apache.lucene.search.PrefixQuery;
> import org.apache.lucene.search.Query;
> import org.apache.lucene.search.ScoreDoc;
> import org.apache.lucene.search.TopScoreDocCollector;
> import org.apache.lucene.store.Directory;
> import org.apache.lucene.store.RAMDirectory;
> import org.apache.lucene.util.Version;
> import com.evermind.tools.calendar.StopWatch;
> public class LuceneTest
> {
>     public static void main(String[] args) throws Exception
>     {
>         Directory index=new RAMDirectory();
>         StandardAnalyzer analyzer=new StandardAnalyzer(Version.LUCENE_35);
>         IndexWriterConfig config=new IndexWriterConfig(Version.LUCENE_35, 
> analyzer);
>         
>         IndexWriter w = new IndexWriter(index, config);
>         addDoc(w, "Hello 1",1);
>         addDoc(w, "Hello 2",2);
>         addDoc(w, "Hello 3",1);
>         w.close();
>         StopWatch.stop();
>         
>         IndexReader reader = IndexReader.open(index);
>         IndexSearcher searcher = new IndexSearcher(reader);
>         
> //        Query q = new TermQuery(new Term("f1","hello"));
>         Query q = new PrefixQuery(new Term("f1","hello"));
>         
>         TopScoreDocCollector collector = TopScoreDocCollector.create(10, 
> true);
>         searcher.search(q, collector);
>         for (ScoreDoc hit: collector.topDocs().scoreDocs)
>         {
>             Document d = searcher.doc(hit.doc);
>             System.err.println(d.get("f1")+" "+hit.score+" "+hit.doc);
>         }
>     }
>     
>     private static void addDoc(IndexWriter w, String value, float boost) 
> throws IOException
>     {
>         Document doc = new Document();
>         doc.add(new Field("f1", value, Field.Store.YES, 
> Field.Index.ANALYZED));
>         doc.setBoost(boost);
>         w.addDocument(doc);
>     }
> }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to