You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@lucene.apache.org by Victor Abeytua <va...@dit.upm.es> on 2005/04/25 16:39:46 UTC

Multiple field search problem

Hello everyone,
    In the project I'm currently involved we are using lucene (+ 
Digester) to index a small number of XML files. To be able to perform 
the searches I want, I should need to query the index with something 
similar to (where fieldN are XML tags):
(field1:"Policy and planning" OR  field1:Newspapers) AND field2:Spanish

    I haven't been able to find any class that suits my needs and if I 
try to use QueryParse.parse() to be able to write the query in "human" 
form, the analyzer takes the "and" away and changes the string to lower 
case. This is something I can't afford as I need to be able to search by 
the exact keywords.
    Any ideas are welcome. Perhaps the answer is right in front of me 
but I haven't been able to figure it out.

    Thanks in advance,
    Victor Abeytua
   

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


Re: Multiple field search problem

Posted by Victor Abeytua <va...@dit.upm.es>.
Thanks for the quick reply.
    As I supposed, the answer was right in front of me. To build a query 
as the one I wanted I have to use the BooleanQuery class:

        Term term1 = new Term("field1", "Policy planning");
        Term term2 = new Term("field1", "Newspapers");
        Term term3 = new Term("field2", "Spanish");
        Query query = new TermQuery(term1);
        Query query2 = new TermQuery(term2);
        Query query3 = new TermQuery(term3);
        BooleanQuery bquery = new BooleanQuery ();
        BooleanQuery bquery2 = new BooleanQuery ();
        bquery.add(query, false, false);
        bquery.add(query2, false, false);
        bquery2.add (bquery, true, false);
        bquery2.add (query3, true, false);
        
        Victor

Gusenbauer Stefan wrote:

>Victor Abeytua wrote:
>
>  
>
>>Hello everyone,
>>   In the project I'm currently involved we are using lucene (+
>>Digester) to index a small number of XML files. To be able to perform
>>the searches I want, I should need to query the index with something
>>similar to (where fieldN are XML tags):
>>(field1:"Policy and planning" OR  field1:Newspapers) AND field2:Spanish
>>
>>   I haven't been able to find any class that suits my needs and if I
>>try to use QueryParse.parse() to be able to write the query in "human"
>>form, the analyzer takes the "and" away and changes the string to
>>lower case. This is something I can't afford as I need to be able to
>>search by the exact keywords.
>>   Any ideas are welcome. Perhaps the answer is right in front of me
>>but I haven't been able to figure it out.
>>
>>   Thanks in advance,
>>   Victor Abeytua
>> 
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
>>For additional commands, e-mail: java-user-help@lucene.apache.org
>>
>>
>>
>>    
>>
>The lowercasing depends on the analyzer you use perharps you've only put
>them into apostrophs like this " if you instanciate the Queryparser you
>can specifiy which Boolean operand should be used if no operand is
>given. With query.toString() you get the query in an human readable
>format for with + for and and so on.
>stefan
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
>For additional commands, e-mail: java-user-help@lucene.apache.org
>  
>


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


Re: Multiple field search problem

Posted by Gusenbauer Stefan <gu...@eduhi.at>.
Victor Abeytua wrote:

> Hello everyone,
>    In the project I'm currently involved we are using lucene (+
> Digester) to index a small number of XML files. To be able to perform
> the searches I want, I should need to query the index with something
> similar to (where fieldN are XML tags):
> (field1:"Policy and planning" OR  field1:Newspapers) AND field2:Spanish
>
>    I haven't been able to find any class that suits my needs and if I
> try to use QueryParse.parse() to be able to write the query in "human"
> form, the analyzer takes the "and" away and changes the string to
> lower case. This is something I can't afford as I need to be able to
> search by the exact keywords.
>    Any ideas are welcome. Perhaps the answer is right in front of me
> but I haven't been able to figure it out.
>
>    Thanks in advance,
>    Victor Abeytua
>  
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
>
>
The lowercasing depends on the analyzer you use perharps you've only put
them into apostrophs like this " if you instanciate the Queryparser you
can specifiy which Boolean operand should be used if no operand is
given. With query.toString() you get the query in an human readable
format for with + for and and so on.
stefan

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