2015-04-04 88 views

回答

2

这应该不是一个问题,因为这里有很多资源。这是我对搜索转到地方:

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

这将有一个命中集合

foreach (var hit in results.Hits) 
{ 
     hit.Document.Id; 

     var relevance = hit.Score; 
........ 

每个命中将具有决定意义一个分数属性(见上文) - 你应该能够按此排序。默认情况下,我认为无论如何,它都是依赖关系排序的。您可以通过在查询中使用Boost功能来更改relvency。

对于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

我相信你会想出休息了

+0

感谢您的输入。我如何根据最高排名先排序? – user2007879 2015-04-05 15:46:23

+0

请参阅以上关于评分属性的修改 - 希望这有助于。 – 2015-04-05 16:15:38

+0

我仍然在sitecore 6.6只是为了让你知道。 – user2007879 2015-04-05 17:10:14