Umbraco,FullTextSearch - 包括搜索媒体部分?

时间:2014-02-11 19:11:05

标签: umbraco

我在我的网站上安装了FullTextSearch(http://fulltextsearch.codeplex.com/)并且运行良好。无论我输入什么关键字,FullTextSearch都会浏览内容并尝试查找该关键字。

但是当我输入一些只在Umbraco后端的Media部分可用的关键字时,即使我在Media文件夹中有大量文件,我找不到任何东西?

任何人都可以解释问题是什么以及为什么FullTextSearch无法从Media Section中找到任何内容?

非常感谢提前!阿迪

1 个答案:

答案 0 :(得分:4)

默认情况下,Umbraco不会索引媒体项目。有一个名为Cog Umbraco Examine Media Indexer的插件,它为网站的媒体部分添加索引,可以索引Apache Tika项目可以解析的PDF,Word和Excel文件,文本文件和其他文件类型

如果采用Media Indexer方法,则必须自定义搜索页面以使用全文搜索和媒体索引器索引。 our.umbraco.org提供了一种组合多个搜索索引的方法。请注意,Media Indexer创建名为“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);