【问题标题】:Sitecore Lucene.net search with " Item name" only and sort it by hitsSitecore Lucene.net 仅使用“项目名称”搜索并按点击排序
【发布时间】:2015-04-04 22:03:21
【问题描述】:

您好,我们如何在 Sitecore 中使用 Lucene.net 搜索项目名称 (http://screencast.com/t/vRAUNgQN) 并按点击次数对搜索进行排序。

【问题讨论】:

标签: sitecore lucene.net


【解决方案1】:

这不应该是一个真正的问题,因为有很多资源可以解决这个问题。这是我搜索的首选地点:

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

https://sdn.sitecore.net/upload/sdn5/articles%202/administration/lucene%20search/lcd/lucene_search_engine-a4.pdf

我相信你会弄清楚其余的

【讨论】:

  • 感谢您的输入。如何根据最高排名先进行排序?
  • 查看上面关于 score 属性的修改 - 希望这会有所帮助。
  • 我仍在使用 sitecore 6.6,只是为了让您知道。
  • 没问题,如果您的问题得到回答,别忘了标记为答案。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-06
  • 1970-01-01
相关资源
最近更新 更多