Lucene.NET查询+突出显示

时间:2011-06-10 05:36:12

标签: lucene lucene.net umbraco

我正在使用Umbraco并遇到了Lucene。我在Lucene上发现了很多代码和文章,但我仍然无法建立一个可接受的搜索。

我有很多要搜索的字段,例如。 “nodeName”和“bodyText”

我需要什么:

  • 当我搜索“男鞋”时,它应该只返回同时包含“男人”和“鞋子”的结果,而且还返回一个页面,其中nodeName只有“鞋子”而bodyText只有“男人”。

  • 当我搜索“鞋子”时,我想要包含“鞋子”或“鞋子”的结果。但如果可能的话,不是“锄头”

  • 提升nodeName字段

  • 获取包含匹配字词的bodyText片段

  • 突出显示页面名称和bodyText片段上的匹配字词

有没有人这样做过?

2 个答案:

答案 0 :(得分:1)

这可能会让你开始。

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());

答案 1 :(得分:0)

Jonathan Lathigee编写的代码,它是迄今为止我能找到的最像google的代码

http://our.umbraco.org/forum/developers/extending-umbraco/19329-Search-multiple-fields-for-multiple-terms-with-examine?p=0