Hi :)
I would like the "text" field of my index to be case-insensitive.
I'm using a PerFieldAnalyzerWrapper with a standardAnalyzer for this
field for both indexing and querying. I read that StandardAnalyzer uses
LowerCaseFilter to lowercase the value of the field but when I run a
query, it doesn' work.
Here is my query :
IndexSearcher isearcher = new IndexSearcher(directory);
BooleanQuery query = new BooleanQuery();
PerFieldAnalyzerWrapper pfaWrapper = getPerfFieldAnalyzer();
QueryParser parser = new QueryParser(Version.LUCENE_31, key, pfaWrapper);
parser.setDefaultOperator(QueryParser.AND_OPERATOR);
Query param = parser.parse(value);
query.add(param, BooleanClause.Occur.MUST);
TopFieldCollector collector = TopFieldCollector.create(new
Sort(SortField.FIELD_DOC), 200000, true, false, false, false);
isearcher.search(query, collector);
The getPerFieldAnalyzer() methods looks like :
if(perFieldAnalyzerWrapper==null){
perFieldAnalyzerWrapper = new PerFieldAnalyzerWrapper(new
KeywordAnalyzer());
perFieldAnalyzerWrapper.addAnalyzer(FIELD_TEXT, new
StandardAnalyzer(Version.LUCENE_31));
perFieldAnalyzerWrapper.addAnalyzer(FIELD_TITLE, new
StandardAnalyzer(Version.LUCENE_31));
}
return perFieldAnalyzerWrapper;
Is there something wrong with this code?
Thank you :)
---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-user-h...@lucene.apache.org