用Lucnen 3.03
盘古分词:2.4.1.0
代码贴上:
public List<KeyWord> Search(string keyword, int count) { QueryParser parser = new QueryParser(Lucene.Net.Util.Version.LUCENE_30, "Word", new Lucene.Net.Analysis.PanGu.PanGuAnalyzer()); parser.DefaultOperator = Lucene.Net.QueryParsers.QueryParser.Operator.OR; Query query = parser.Parse(keyword); IndexSearcher searcher = new IndexSearcher(direcotry, true); TopDocs docs = searcher.Search(query, (Filter)null, count); if (docs == null || docs.TotalHits == 0) { return new List<KeyWord>(); } else { List<KeyWord> list = new List<KeyWord>(); foreach (ScoreDoc sd in docs.ScoreDocs) { try { KeyWord kw = new KeyWord(); Document doc = searcher.Doc(sd.Doc); string id = doc.Get("ID"); string word = doc.Get("Word"); string textID = doc.Get("TextID"); kw.Word = word; kw.ID = Convert.ToInt32(id); kw.TextID = Convert.ToInt32(textID); list.Add(kw); } catch (Exception) { return null; } } return list; } }
现在数据库有400W数据。
我要搜索关键词:成都周边一日自驾游
出来的数据只有 一个如图:
我在搜索关键词:周边自驾游
出来的数据就很多了:
盘古分词也没问题:
我现在想实现的就是搜索:成都周边一日自驾游
会出现更多的 成都周边 自驾游 等关键词的出现,
比如 成都周边小吃,成都周边哪儿好玩儿,湖南自驾游,云南自驾游 等这样出现!
出现的关键词越多排名越前。
请问怎么实现?
我上面的代码应该怎么修改?
你确定分词成功了?
看一下最后一张图片?成都周边一日自驾游 被分词分成
成都 周边 一日 自 驾 游
你的调用方式不对,下面是官方给出的方法:
http://pangusegment.codeplex.com/wikipage?title=PanGu4Lucene