Невозможно ограничить настраиваемый индекс Sitecore Lucene / sitecore / content / Home

Я пытаюсь создать новый индекс Lucene на сайте с Sitecore 6.3.1. Я использовал существующий «системный» индекс в качестве руководства, и мне удалось успешно создать новый индекс в сети и мастер для индексации всех элементов в дереве контента Sitecore.

Однако у меня возникают трудности с ограничением того, какую часть дерева контента индексирует искатель базы данных. В настоящее время поисковый индекс содержит элементы отовсюду в дереве контента (элементы контента, элементы библиотеки мультимедиа, макеты, шаблоны и т. Д.). Я хотел бы ограничить индекс только элементами в /sitecore/content/Home.

Я создал файл в ~/App_Config/Include/Search Indexes/website.config и вставил соответствующие разделы ниже:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <sitecore>

    <!-- This works as expected.... -->
    <databases>
      <database id="web">
        <indexes hint="list:AddIndex">
          <index path="indexes/index[@id='website']" />
        </indexes>
      </database>

      <!-- ... similar entry for master database goes here ... -->
    </databases>

    <!-- So does this.... -->
    <indexes>
      <index id="website" singleInstance="true" type="Sitecore.Data.Indexing.Index, Sitecore.Kernel">
        <param desc="name">$(id)</param>
        <fields hint="raw:AddField">
          <!-- ... field descriptions go here ... -->
        </fields>
      </index>
    </indexes>

    <!-- This works... mostly.  The "__website" directory does get created,
          but the Root directive is getting ignored.
    -->
    <search>
      <configuration type="Sitecore.Search.SearchConfiguration, Sitecore.Kernel" singleInstance="true">
        <indexes hint="list:AddIndex">
          <index id="website" singleInstance="true" type="Sitecore.Search.Index, Sitecore.Kernel">
            <param desc="name">$(id)</param>
            <param desc="folder">__$(id)</param>

            <Analyzer ref="search/analyzer" />

            <locations hint="list:AddCrawler">
              <web type="Sitecore.Search.Crawlers.DatabaseCrawler, Sitecore.Kernel">
                <Database>web</Database>
                <Root>/sitecore/content/home</Root>
                <Tags>content</Tags>
              </web>

              <!-- ... similar entry for master database goes here ... -->
            </locations>
          </index>
        </indexes>
      </configuration>
    </search>
  </sitecore>
</configuration>

Пара замечаний:

  • Это не из моего web.config файла; Я создал отдельный файл, чтобы распространять изменения конфигурации через пакеты Sitecore.

  • Индекс был добавлен как в master, так и в web; Я опустил ссылки на master для краткости.

  • Sitecore определенно обрабатывает записи для configuration/sitecore/search/configuration. Я вижу их, когда перехожу к http://localhost/sitecore/admin/showconfig.aspx, и если я изменяю одно из значений тега на что-то недопустимое (например, <Root>/nothere</Root>), Sitecore генерирует исключение при загрузке следующей страницы.

  • Я просмотрел содержимое индекса в IndexViewer, и определенно индексируются не те элементы (например, документ № 0 в индексе - это узел /sitecore).

Где я ошибаюсь? Какие изменения мне нужно внести в мой файл конфигурации, чтобы индексатор поиска игнорировал элементы за пределами /sitecore/content/Home?


person Community    schedule 18.03.2011    source источник
comment
Изначально это было размещено на форумах SDN.   -  person    schedule 22.03.2011


Ответы (1)