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里面结果就出来了?


那麻烦你把这三个东东分别解释下..
Global site tag (gtag.js) - Google Analytics