lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Erick Erickson" <erickerick...@gmail.com>
Subject Re: Implement a filter to the search results
Date Tue, 11 Sep 2007 16:28:01 GMT
What version of Lucene are you using? I don't think the form
b.add(query, false, false) is current.

Be that as it may, I'm not quite sure what you mean by
filter. If I'm reading your intent correctly, wouldn't requiring
each non-empty field accomplish what you want? Which would
be something like
b.add(query, BooleanClause.MUST);

Best
Erick

On 9/11/07, M. K <kohan.massoud@gmail.com> wrote:
>
> I am not sure, I understant perfectly.
> Is this the way you said:
>
>
> document.add(Field.*UnStored*("text", docText));
> document.add(Field.*Text*("category", category));
> document.add(Field.*Text*("department",department));
> document.add(Field.*Text*("year", year));
>
> *search:*
>
>
> String[] fields = { "text", "category","department","year" };
>
> BooleanQuery bQuery = *new* BooleanQuery();
>
> *for* (*int* i = 0; i < fields.length; i++) {
>
> QueryParser parser = *new* QueryParser(fields[i],  analyzer);
>
> Query q = parser.parse(query);
>
> bQuery.add(q, *false*, *false*); // combine the queries, neither requiring
> or prohibiting matches
>
> }
>   Hits hits = searcher.search(bQuery);
>
>
> MK
>
>
>
> On 9/10/07, testn <test1@doramail.com> wrote:
> >
> >
> > It's probably easier to add category, department, year as a part of
> query
> > and
> > then requery to get the hits you need.
> >
> > M.K wrote:
> > >
> > > Hi All,
> > >
> > > I have a search form which has an input area for key search and also
> > > three
> > > optional select boxs  *Catagory, Department and Year. *
> > >  My question is how can I filter the results if users select a
> category
> > or
> > >  a department or a year or a combination of them.
> > >
> > > *index *:
> > >
> > > IndexWriter indexWriter =
> > > *new* IndexWriter(API.*getRootPath*() + "\\data\\LUCENE" ,
> > > *new*StandardAnalyzer(),true);
> > >
> > > Document document = *new* Document();
> > >
> > > document.add(Field.*Text*("text", docText));
> > >
> > > document.add(Field.*UnIndexed*("department", depart));
> > >
> > > document.add(Field.*UnIndexed*(
> > > "category", courseId));
> > >
> > > document.add(Field.*UnIndexed*(
> > > "year", year));
> > >
> > > indexWriter.addDocument(document);
> > >
> > > indexWriter.close();
> > >
> > >
> > >
> > > *search: *
> > >
> > > *Searcher searcher = new IndexSearcher(API.getRootPath() +
> > > "/data/LUCENE/");
> > > Analyzer analyzer = new StandardAnalyzer();*
> > >
> > > * Query query = QueryParser.parse(request.getParameter("query"),
> "text",
> > > analyzer);
> > >  Hits hits = searcher.search (query);*
> > >
> > > I do not konw how implement a filter to the results of the search for
> > > catgory or year or department.
> > >
> > > Thanks,
> > >
> > > Massoud
> > >
> > >
> >
> > --
> > View this message in context:
> >
> http://www.nabble.com/Implement-a-filter-to-the-search-results-tf4418068.html#a12606295
> > Sent from the Lucene - Java Users mailing list archive at Nabble.com.
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> > For additional commands, e-mail: java-user-help@lucene.apache.org
> >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message