BooleanQuery与StandardAnalyzer的问题
wangxuliangboy
2008-11-07
ArticleTitle="北京2008年奥运会";
"北京2008年奥运会" 我用StandardAnalyzer分词的话,会分成"北","京","2008","年"等等. 然后我用 TermQuery query =new TermQuery(new Term("ArticleTitle","北京")); 通过IndexSearch搜索。搜索不出来。。 但是我把这个换成BooleanQuery BooleanQuery bQuery = new BooleanQuery(); QueryParser qp = new QueryParser("ArticleTitle", analyzer); Query q = qp.parse("北京"); bQuery.add(q, Occur.MUST); 在用IndexSearch搜索,这样就能搜索出来了。。 我想问的是BooleanQuery是怎么处理这个搜索过程的。 |
|
wangxuliangboy
2008-11-07
问题己经搞清楚啦..
因为BooleanQuery会转换成PhraseQuery. 组成如下Query: PhraseQuery pQuery=new PhraseQuery(); pQuery.add(new Term("ArticleTitle","北")); pQuery.add(new Term("ArticleTitle","京")); 所有BooleanQuery能查询到 |
|
javaeyes
2008-11-10
娃娃, 你根本没有搞清楚。分词是什么? term是什么? Query是什么?
为啥你把那个加到BooleanQuery里面结果就出来了? |
|
wangxuliangboy
2008-11-11
javaeyes 写道 娃娃, 你根本没有搞清楚。分词是什么? term是什么? Query是什么?
为啥你把那个加到BooleanQuery里面结果就出来了? 那麻烦你把这三个东东分别解释下.. |