tags:

views:

201

answers:

1

Hi, I am searching in lucene with a "equals" operator implemented like:

return new TermQuery(new Term(getName(), getValue()));

for a vale like: customerID:YADA-UT-08ec5de9-8813-4361-be88-55695ddfaa00

This is working.

BUT, if i use an "in" operator implemented with a BooleanQuery like;

final BooleanQuery booleanQuery = new BooleanQuery();
    for (final String aValue : value) {
        booleanQuery.add(new TermQuery(new Term(getName(), aValue)), BooleanClause.Occur.SHOULD);
    }

it will not find any customer with YADA-UT-08ec5de9-8813-4361-be88-55695ddfaa00

After a lot of tests i am assuming that the length of 'YADA-UT-08ec5de9-8813-4361-be88-55695ddfaa00' or dashes can be the problem. (i use token to keep it in db) when using with BooleanQuery.

Any clue ?

EDIT: What is strange is that: - this is working with "in" (Boolean query): 25c20c21-bd88-4a6d-aa02-209b5fb6fb11 - this is not working with it: YADA-UT-08ec5de9-8813-4361-be88-55695ddfaa00

Solution Found: the lucene words were indexed as lower case :)

A: 

Strange solution for me but...that's it:)

the lucene words were indexed as lower case :)

Cristian Boariu