lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Erik Hatcher <e...@ehatchersolutions.com>
Subject Re: querying multiple fields
Date Wed, 22 Jun 2005 17:42:55 GMT
On Jun 22, 2005, at 1:24 PM, George Abraham wrote:
> Otis,
> I think MultiFieldQueryParser (if I am not mistaken) uses the same
> query string to search multiple fields. Let me know if it is
> otherwise.
>
> Erik,
> Let me see if I can answer those questions. Here are some code
> snippets, by the way.
>
> FOR INDEX
> IndexWriter writer = new IndexWriter(indexDir, new StopAnalyzer(),  
> true);
> while (rs.next()){ //rs is a database resultset I am looping over
>   Document doc = new Document();
>   doc.add(Field.Keyword("ObjectID", ObjectID));
>   doc.add(Field.Keyword("ImageExistsBit",
> ImageExistsBit));//ImageExistsBit is 1 or 0
>   doc.add(Field.Text("SearchTerms", SearchTerms));
>   writer.addDocument(doc);
>   writer.optimize();
>   writer.close();
> }
>
> FOR SEARCH
> searcher = new IndexSearcher(IndexReader.open(indexPath) );
> Analyzer analyzer = new StopAnalyzer();
> luceneQuery = QueryParser.parse(queryString, "SearchTerms", analyzer);
> hits = searcher.search(luceneQuery);
> System.out.println("Found " + hits.length() + " document(s).");
>
> What I want: I want all the ObjectIDs that have the term 'visnu
> temple' in the SearchTerms field and has ImageExistsBit=1. So the
> queryString above is: SearchTerms:\"visnu temple\" ImageExistsBit:1".
> The .toString() for this query is SearchTerms:"visnu temple"

Your analyzer is eating the ImageExistsBit:1 because "1" returns no  
tokens through StopAnalyzer.  Here's a solution, adapted from the  
code that powers lucenebook.com.  Use this as your analyzer:

       PerFieldAnalyzerWrapper analyzer = new PerFieldAnalyzerWrapper 
(new StopAnalyzer());
       analyzer.addAnalyzer("ImageExistsBit", new WhitespaceAnalyzer());

That should do the trick.

     Erik




---------------------------------------------------------------------
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