默認情況下,Umbraco不索引媒體項目。有一個名爲Cog Umbraco Examine Media Indexer的插件,它爲網站的媒體部分添加了一個索引,並且可以索引Apache Tika項目可以解析的PDF,Word和Excel文件,文本文件以及其他文件類型。
如果採用媒體索引器方法,則必須自定義搜索頁以利用全文搜索和媒體索引器索引。 our.umbraco.org提供了一種組合多個搜索索引的方法。請注意,媒體索引器創建一個名爲「MediaIndexSet」的索引,而全文本搜索插件創建一個名爲「FullTextIndexer」的索引。
編輯
下面是如何創建一個MultiIndexSearcher
兩個搜索索引結合一個例子:
var indexes = new[] {"FullTextIndexer", "MediaIndexer"};
var directories = new List<DirectoryInfo>();
foreach (var index in indexes)
{
var indexer = ExamineManager.Instance.IndexProviderCollection[index];
var directory =
new DirectoryInfo(
((LuceneIndexer) indexer).LuceneIndexFolder.FullName.Replace("\\Index", ""));
directories.Add(directory);
}
var searcher = new MultiIndexSearcher(directories, new StandardAnalyzer());
然後你可以使用searcher
對象執行你的搜索:
var criteria = searcher.CreateSearchCriteria();
var query = criteria.RawQuery("name:\"search terms\""); // Replace with actual query
var results = searcher.Search(query);
您好cmptrgeekken,非常感謝您的及時回覆!我已經安裝了Cog Umb。防爆。我有一個問題如何自定義我的搜索頁面(全文搜索和媒體索引器索引)。我看到代碼你susugestted,做了幾個組合,但沒有運氣;(我可以發送鏈接到我的網站,看看它的工作原理可能嗎?謝謝,MC2012 – MC2012
我已經更新了我的答案,提供了一個如何使用MultiIndexSearcher搜索整個索引,讓我知道如果這有幫助! – cmptrgeekken
您好cmptrgeekken,我目前正在嘗試實施您的代碼,我會讓你知道,只要我得到第一個結果,它會解決。BR,MC2012 – MC2012