2015-04-04 84 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