Как связать Sitecore Content Editor с пользовательским поисковым индексом Solr, настроенным для определенного шаблона данных? - PullRequest
3 голосов
/ 17 мая 2019

Я создал пользовательский поисковый индекс Solr для конкретного шаблона данных, так как я ожидаю сохранения множества элементов, созданных на основе этого шаблона. Как вы могли догадаться, я организовал свои элементы в корзины элементов Sitecore для повышения производительности, а также я мог настроить свой внешний интерфейс Sitecore для использования этого пользовательского поискового индекса Solr. Теперь я хотел бы оптимизировать поиск по моим корзинам элементов в редакторе контента, но, похоже, Sitecore берет основной индекс над любыми пользовательскими индексами. Как я могу настроить Sitecore для использования моего пользовательского индекса?

1 Ответ

4 голосов
/ 17 мая 2019

После того как вы создали свой собственный индекс Solr, вы также должны были создать соответствующий файл конфигурации в соответствии с одним из файлов примеров, предоставляемых Sitecore.Например, для Master DB вы можете использовать Sitecore.ContentSearch.Solr.Index.Master.config.example в качестве шаблона конфигурации и просто добавить атрибут patch:before="*[1]" в свое определение индекса следующим образом:

<?xml version="1.0" encoding="utf-8" ?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
  <sitecore>
    <contentSearch>
      <configuration type="Sitecore.ContentSearch.ContentSearchConfiguration, Sitecore.ContentSearch">
        <indexes hint="list:AddIndex">
          <index patch:before="*[1]" id="my_sitecore_custom_master_index" type="Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, Sitecore.ContentSearch.SolrProvider">
            <param desc="name">$(id)</param>
            <param desc="core">$(id)</param>
            <param desc="propertyStore" ref="contentSearch/indexConfigurations/databasePropertyStore" param1="$(id)" />
            <configuration ref="contentSearch/indexConfigurations/defaultSolrIndexConfiguration" />
            <strategies hint="list:AddStrategy">
              <strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/syncMaster" />
            </strategies>
            <locations hint="list:AddCrawler">
              <crawler type="Sitecore.ContentSearch.SitecoreItemCrawler, Sitecore.ContentSearch">
                <Database>master</Database>
                <Root>/sitecore</Root>
              </crawler>
            </locations>
            <enableItemLanguageFallback>false</enableItemLanguageFallback>
            <enableFieldLanguageFallback>false</enableFieldLanguageFallback>
          </index>
        </indexes>
      </configuration>
    </contentSearch>
  </sitecore>
</configuration>

Теперь Sitecore загрузит my_sitecore_custom_master_index конфигурацию индексав качестве первого приоритета и использовать его при обработке любых поисковых запросов для ваших пользовательских элементов вместо стандартного Sitecore.

...