浏览:185 2008-09-14 16:39 来自 lovko      :

我在测试的时候发现有点疑问
IndexReader reader = IndexReader.Open(dir);

            Searcher searcher = new IndexSearcher(reader);
            BooleanQuery bquery = new BooleanQuery();
            QueryParser titlequery = new QueryParser("title", new Lucene.Net.Analysis.Standard.StandardAnalyzer());
            QueryParser contentquery = new QueryParser("content", new Lucene.Net.Analysis.WhitespaceAnalyzer());

            bquery.Add(titlequery.Parse("朋"), BooleanClause.Occur.MUST);
            bquery.Add(titlequery.Parse("小朋友,你不能这样欺负我"), BooleanClause.Occur.MUST);
            Hits hits = searcher.Search(bquery);

//上面是我的查询语句,在索引里面我相看了有以下几个term "朋" "友" "小朋友,你不能这样欺负我"共三个,  在添加时我使用了两个不用的分析器,一个是StandardAnalyzer()对title字段做的分词,结果是把我存入的"朋友"一词分成了"朋"和"友".对于content字段我使用的是WhitespaceAnalyzer进行分词,结果按原样存入的term中"小朋友,你不能这样欺负我".
但是当我用上面的语句进行查询的时候,却没有一个结果,大家帮我看下,什么原因?

收藏 楼主
  2个月前  lovko      :
各位,打扰了,不好意思,是我写错了!
bquery.Add(titlequery.Parse("朋"), BooleanClause.Occur.MUST);
bquery.Add(titlequery.Parse("小朋友,你不能这样欺负我"), BooleanClause.Occur.MUST);
这个地方第二行也写成(titlequery.Parse(..)了,嘿嘿!
1楼 回到顶楼 

注册用户登录后才能回复,登录注册
> 返回“Lucene”


其他话题

相关内容

相关链接
1 40246