当前位置: 首页 > 知识库问答 >
问题:

Sitecore Lucene搜索索引和子文件夹

秦承允
2023-03-14

注意:
我只使用“luceneresults”.ascx和.cs。

----问题更新了,因为我缩小了问题的范围----

我试图创建一组特定项的索引,用于Lucene搜索。
在web.config中,我指定了一个索引,该索引包含:

 ...
 <root>/sitecore/content/Home/Subfolder</root>
 ...
 ...
 <root>/sitecore/content/newSubfolder/Subfolder/Subfolder</root>
 ...

完整索引:

<index id="faqindex" type="Sitecore.Search.Index, Sitecore.Kernel">
    <param desc="name">$(id)</param>
    <param desc="folder">__faq</param>
    <Analyzer ref="search/analyzer"/>
    <locations hint="list:AddCrawler">
        <resources type="Sitecore.Search.Crawlers.DatabaseCrawler, Sitecore.Kernel">
            <database>master</database>
                      <root>/sitecore/content/MyContent/Snippets/FAQ</root>
            <include hint="list:IncludeTemplate">
                <faqblock>{3340AAAE-B2F8-4E22-8B7B-F3EDDB48587E}</faqblock>
            </include>
            <tags>faqblock</tags>
            <boost>1.0</boost>
        </resources>
    </locations>
</index>

共有1个答案

吕胤
2023-03-14

听起来像是在使用Sitecore Marketplace的Lucene搜索模块。此模块的代码将搜索结果限制为站点根目录及其子级:

 public SearchManager(string indexName)
 {
   SearchIndexName = indexName;
   Database database = Factory.GetDatabase("master");
   var item = Sitecore.Context.Site.StartPath;
   SiteRoot = database.GetItem(item);
}
[...]
public SearchResultCollection Search(string searchString)
{
  //Getting index from the web.config
  var searchIndex = Sitecore.Search.SearchManager.GetIndex(SearchIndexName);
  using(IndexSearchContext context = searchIndex.CreateSearchContext())
  {
     SearchHits hits = context.Search(searchString, new SearchContext(SiteRoot));

sitecore模块\Lucene Search\SearchManager.cs

假设web.config的sites部分中的“网站”节点具有startitem=“/home”,则不会返回“home”层次结构之外的结果。

SiteRoote = database.GetItem("/sitecore/content");
 类似资料:
  • bugu-mongo 2.x版本集成了Lucene的功能。当往MongoDB中新增一个Document时,能自动为该Document建立Lucene索引。相应的,当MongoDB中的Document被修改、删除时,对应的Lucene索引也会修改、删除。 另外,bugu-mongo还提供了对Lucene搜索的支持。根据Lucene索引进行搜索的时候,搜索结果能自动转换成对应的Entity对象。 在L

  • 我们有一个客户正在使用谷歌搜索设备(GSA)搜索数千个PDF文件。PDF文件位于子文件夹中组织的文件共享上。它定期发现新文件并将其添加到数据库中。 GSA还不够好,所以现在他们需要替代品。例如,他们的GSA无法在PDF中正确搜索垂直文本。我们已经研究了Apache Lucene和Solr以及Tika和ExtractingRequestHandler。 我已经启动并运行了Solr示例,并添加了一个使

  • 问题内容: 我是Lucene的新手,在创建 用于查询文本文件集合的 简单代码时遇到一些问题。 我尝试了此示例,但与新版本的Lucene不兼容。 UDPATE: 这是我的新代码,但是仍然无法使用。 问题答案: Lucene是一个相当大的主题,涉及很多类和方法,通常您必须至少了解一些基本概念才能使用它。如果您需要快速可用的服务,请改用Solr。如果您需要对Lucene的完全控制,请继续阅读。我将介绍一

  • 我有大量相同类型的实体,每个实体都有大量属性,并且我只有以下两种选择来存储它们: 将每个项存储在索引中并执行多索引搜索 将所有enties存储在单个索引中,并且只搜索1个索引。 一般而言,我想要一个时间复杂度之间的比较搜索“N”实体与“M”特征在上述每一种情况!

  • 主要内容:索引,下载索引,构件搜索我们知道,Maven 中央仓库为用户提供了多达数十万构件,而 Nexus 可以代理所有的远程仓库(包括 Maven 中央仓库),可见 Nexus 仓库中构件的数量相当庞大。用户想要在这么多构件中,快速的查找自己所需的构件,一个最直接有效的方式就是:搜索。 Nexus 作为一款成熟的仓库管理工具,它通过维护仓库的索引提供了构件搜索功能,以便帮助用户方便快速地找到所需构件。 本节我们将详细为您介绍 N