【发布时间】:2015-04-04 22:03:21
【问题描述】:
您好,我们如何在 Sitecore 中使用 Lucene.net 搜索项目名称 (http://screencast.com/t/vRAUNgQN) 并按点击次数对搜索进行排序。
【问题讨论】:
-
您已经尝试过什么以及您已经查看过哪些资源? stackoverflow.com/help/how-to-ask
标签: sitecore lucene.net
您好,我们如何在 Sitecore 中使用 Lucene.net 搜索项目名称 (http://screencast.com/t/vRAUNgQN) 并按点击次数对搜索进行排序。
【问题讨论】:
标签: sitecore lucene.net
这不应该是一个真正的问题,因为有很多资源可以解决这个问题。这是我搜索的首选地点:
http://www.sitecore.net/learn/blogs/technical-blogs/sitecore-7-development-team.aspx
不过,我会给你一个疑问,让你开始。
如果您使用的是 Sitecore 7 及更高版本,则可以使用 Linq 样式搜索。
using (var context = new ContentSearchManager.GetIndex("indexname").CreateSearchContext())
{
IQueryable<SearchResultItem> query =context.GetQueryable<SearchResultItem> ().Where(p=> p["name"].Equals("John"));
}
然后你可以调用
SearchResults<SearchResultItem> results = query.GetResults();
这将有一个 hits 集合
foreach (var hit in results.Hits)
{
hit.Document.Id;
var relevance = hit.Score;
........
每个匹配项都有一个决定相关性的 Score 属性(见上文) - 您应该能够按此排序。默认情况下,我认为无论如何它都是按相关性排序的。您可以使用查询中的 Boost 函数来更改相关性。
对于 Sitecore 6.6
我是高级数据库爬虫模块的忠实粉丝 - 它为位于标准搜索 api 之上的搜索逻辑提供了一个很好的包装器。
http://sitecoresupport.blogspot.co.uk/2013/05/advanced-database-crawler-sitecore.html
请记住,如果您升级到 7,则此模块存在兼容性问题。
或者您可以使用标准的 Sitecore 搜索 api
我相信你会弄清楚其余的
【讨论】: