我正在使用Umbraco并遇到了Lucene。我在Lucene上发现了很多代码和文章,但我仍然无法建立一个可接受的搜索。
我有很多要搜索的字段,例如。 “nodeName”和“bodyText”
我需要什么:
当我搜索“男鞋”时,它应该只返回同时包含“男人”和“鞋子”的结果,而且还返回一个页面,其中nodeName只有“鞋子”而bodyText只有“男人”。
当我搜索“鞋子”时,我想要包含“鞋子”或“鞋子”的结果。但如果可能的话,不是“锄头”
提升nodeName字段
获取包含匹配字词的bodyText片段
突出显示页面名称和bodyText片段上的匹配字词
有没有人这样做过?
答案 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的代码