lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Grant Ingersoll <gsing...@apache.org>
Subject Re: term query boost problem
Date Wed, 12 Aug 2009 21:55:27 GMT
You have a bunch of log statements in there, what are they printing out?

Also, IndexSearcher.explain() is your friend for understanding why a  
doc matched the way it did.


On Aug 12, 2009, at 3:46 PM, Christian Bongiorno wrote:

> I have a situation where I have a series of terms queries as part of a
> BooleanQuery.
>
> example:
>
> term: 'sole type' -> leather
>  BooleanClause.SHOULD_OCCURR
> term: 'title' -> 'Men's Golf shoes'
>  BooleanClause.SHOULD_OCCURR
> ...
>
> But, some terms are incredibly powerful indicators of match
> term: 'band type' -> 'gold'
>
> Normally, I would set this as a field boost in the query. Problem  
> is, it
> isn't producing ANY changes even when I set the boost score absurdly  
> high. I
> have also tried to set the BooleanClause.MUST on my really important  
> term
> and I get no results at all.
>
> I tried a simple TermQuery for that (no clause) and got no results.  
> Below is
> a code snippet. I checked through the recent archives discussing field
> boosts and I am pretty confident I am doing it right. So, now I am  
> presuming
> it's a problem with my query.
>
>    private Query buildQuery(Map<String, String> CatalogInfo) {
>        if (CatalogInfo != null && CatalogInfo.size() > 0) {
>            BooleanQuery booleanQuery = new BooleanQuery();
>            for (Map.Entry<String, String> attributeValue :
> CatalogInfo.entrySet()) {
>                String attributeName = attributeValue.getKey();
>                String[] attributeValues;
>                if  
> (attributeValue.getValue().indexOf(VALUES_DELIMITER) ==
> -1) {
>                    attributeValues = new String[]
> {attributeValue.getValue()};
>                } else {
>                    attributeValues =
> attributeValue.getValue().split(VALUES_DELIMITER);
>                }
>                for (String attributeValue : attributeValues) {
>                    String escapedValue =
> QueryParser.escape(attributeValue).trim();
>                    TermQuery termQuery = new TermQuery(new
> Term(attributeName, escapedValue));
>
>
>                    Float boostNumber =  
> _boostMap.get(attributeName); //
> this is where 'band type' gets it's boost
>                    if (boostNumber != null) {
>                        LOG.warn("Boost value found: " + boostNumber);
>                        termQuery.setBoost(boostNumber);
>                    }
>                    booleanQuery.add(termQuery,  
> BooleanClause.Occur.SHOULD);
>                }
>            }
>            LOG.warn("Boolean query: " + booleanQuery.toString());
>            return booleanQuery;
>        }
>        return null;
>    }
> -- 
> Christian Bongiorno

--------------------------
Grant Ingersoll
http://www.lucidimagination.com/

Search the Lucene ecosystem (Lucene/Solr/Nutch/Mahout/Tika/Droids)  
using Solr/Lucene:
http://www.lucidimagination.com/search


---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Mime
View raw message