String line="text1 text2";
Query q = MultiFieldQueryParser.parse(line,fields,analyzer);
Hits hits = searcher.search(q);

Here search will take "text1 OR text2" Condition
How  to make searh  "text1 and  text2" Condiation

I recently stumbled over the same issue - the setOperator method is not static and will therefore not effect the Query that is created by the parse method!


Until someone refactors the code (something along the lines of a QueryParserFactory might make sense), here is a workaround:

public Query parse(String query, String[] fields, Analyzer analyzer)
{
  BooleanQuery bQuery = new BooleanQuery();
  for (int i = 0; i < fields.length; i++)
  {
    QueryParser parser = new QueryParser(fields[i], analyzer);
    parser.setOperator(QueryParser.DEFAULT_OPERATOR_AND);
    Query q = parser.parse(query);
    bQuery.add(q, false, false);
  }
  return bQuery;
}

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to