Lucene.NET查询+突出显示
问题描述:
我使用Umbraco并遇到了Lucene。我在Lucene上发现了很多代码和文章,但我仍然无法构建可接受的搜索。Lucene.NET查询+突出显示
我有很多字段可以搜索,例如。 “节点名称”和“bodyText的”
我需要什么:
当我搜索“男鞋”,它应该只返回有两个“男人”和“鞋”的结果,但也回归nodeName只有“鞋子”,bodyText只有“男士”的页面。
当我搜索“鞋子”时,我想要包含“鞋子”或“鞋子”的结果。但不是“锄头”如果可能的话
提振节点名称领域
获取bodyText的一个片段,包含匹配字(S)
突出显示在页面名称和两个匹配的单词片段的正文文本
有没有人曾经这样做过?
答
乔纳森Lathigee代码工作,这是最像Google那样我能找到到目前为止
答
这可能会让你开始。
var manager = ExamineManager.Instance;
var searcher = manager.SearchProviderCollection["YOURSearcher"];
var query = manager.SearchProviderCollection["YOURSearcher"].CreateSearchCriteria(BooleanOperation.Or)
.Field("nodeName", keywords.Boost(10))
.Or().Field("nodeName", keywords.Fuzzy())
.Or().Field("bodyContent", keywords.Boost(5))
.Or().Field("otherField", keywords.Boost(3));
var results = searcher.Search(query.Compile());
是Lucene的做所有你需要和* *得多多。然而,由于你看起来是一个新手,我推荐使用Apache Solr(这是一个围绕Lucene构建的搜索服务器,并提供了许多开箱即用的功能,而不需要修改内部文件) – Mikos 2011-06-10 11:29:27
谢谢。那用Umbraco ...? – Aximili 2011-06-14 00:12:26