: but I want only the score of the full-text query to be multiplied by : the query norm. The function queries should be added to the final : query as they are (the factors a, b, ... could be set using a query : boost.) : : How do I achieve that? I'm rather lost in the forest of Scorer, : Similarity and Weight right now. Which is the right place to add such : a modification, so that it doesn't mess up the rest of the scoring?
two approaches would work depending on your goal: 1) change the default similarity (using Similarity.setDefault(Similarity) used by all queries to a version with queryNorm returning an constant, and then in the few queries where you want the more traditional queryNorm, override the getSimilarity method inline... Query q = new TermQuery(new Term("foo","bar")) { public Similarity getSimilarity(Searcher s) { return new DefaultSimilarity(); } }; 2) reverse step one ... override getSimiliarity() just in the classes you want to queryNorm to be constant and leave hte default alone. : I already tried extending BooleanQuery so that getSimilarity returns a : Similarity which overloads just queryNorm, to return 1.0. But this : queryNorm is then used both for the FunctionQuery and the full-text : query. Hmmm ... that really doesn't sound right, are you sure you don't mean you changed the default similarity, or changed the similarity on the searcher? -Hoss --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]