我在我的网站上安装了FullTextSearch(http://fulltextsearch.codeplex.com/)并且运行良好。无论我输入什么关键字,FullTextSearch都会浏览内容并尝试查找该关键字。
但是当我输入一些只在Umbraco后端的Media部分可用的关键字时,即使我在Media文件夹中有大量文件,我找不到任何东西?
任何人都可以解释问题是什么以及为什么FullTextSearch无法从Media Section中找到任何内容?
非常感谢提前!阿迪
答案 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);