2

I run Lucene indexes on Sitecore 8.1.

I have a custom index that is being generated correctly (on sitecore_web_index) on the CM server, but this change is not reflected on the CD server.

Further details are as follows:

  • I added log entries to the index generation process: when I publish relevant items from the Sitecore control panel on the CM server, those entries appear on the Sitecore log and the sitecore_web_index is updated correctly.
  • No matter if Smart Publish, Republish or Reindex a tree, the correct values are only updated on the sitecore_web_index of the CM server, never on CD.
  • No other index has this problem, everything else seems to be copied just fine on CD.

Question: How can I ensure index consistency between CM and CD servers?

EDIT: this is the entire Sitecore.ContentSearch.Lucene.Index.Web.config file:

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
  <sitecore>
    <contentSearch>
      <configuration type="Sitecore.ContentSearch.ContentSearchConfiguration, Sitecore.ContentSearch">
        <indexes hint="list:AddIndex">
          <index id="sitecore_web_index" type="Sitecore.ContentSearch.LuceneProvider.LuceneIndex, Sitecore.ContentSearch.LuceneProvider">
            <param desc="name">$(id)</param>
            <param desc="folder">$(id)</param>
            <param desc="propertyStore" ref="contentSearch/indexConfigurations/databasePropertyStore" param1="$(id)" />
            <configuration ref="contentSearch/indexConfigurations/defaultLuceneIndexConfiguration" />
            <strategies hint="list:AddStrategy">
              <strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/onPublishEndAsync" />
            </strategies>
            <commitPolicyExecutor type="Sitecore.ContentSearch.CommitPolicyExecutor, Sitecore.ContentSearch">
              <policies hint="list:AddCommitPolicy">
                <policy type="Sitecore.ContentSearch.ModificationCountCommitPolicy, Sitecore.ContentSearch">
                  <Limit>300</Limit>
                </policy>
              </policies>
            </commitPolicyExecutor>
            <locations hint="list:AddCrawler">
              <crawler type="Sitecore.ContentSearch.SitecoreItemCrawler, Sitecore.ContentSearch">
                <Database>web</Database>
                <Root>/sitecore</Root>
              </crawler>
            </locations>
            <enableItemLanguageFallback>false</enableItemLanguageFallback>
            <enableFieldLanguageFallback>false</enableFieldLanguageFallback>
          </index>
        </indexes>
      </configuration>
    </contentSearch>
  </sitecore>
</configuration>
7
  • 1
    Can you share your index configuration? Might be an issue with your update strategy.. doc.sitecore.net/sitecore_experience_platform/81/…
    – Gatogordo
    Nov 22, 2018 at 15:35
  • The entire Sitecore.ContentSearch.Lucene.Index.Web.config and Sitecore.ContentSearch.Lucene.Index.Master.config? Nov 22, 2018 at 15:39
  • 1
    The web - I understood master is working fine so we don't need that one. Especially the <strategies> and the <locations> part to start with..
    – Gatogordo
    Nov 22, 2018 at 15:42
  • 1
    Since you strategy is onPublishEndAsync, it should update the index after each publish job runs. You need to make sure EnableEventQueues is enabled. <setting name="EnableEventQueues" value="true">
    – Chris Auer
    Nov 22, 2018 at 16:19
  • 1
    Please view the page /sitecore/admin/showconfig.aspx on your CD and CM servers and make EnableEventQueues is set to true.
    – Chris Auer
    Nov 22, 2018 at 16:20

1 Answer 1

2

After a chat on Slack we ruled out a bad config and the EventQueue was enabled.

So another reason for this behavior could be a corrupted index. A rebuild can fix this. Rebuilding on the CD requires the RemoteRebuild strategy though. As a quick fix, you can delete all index files on the CD and copy the files from a working environment (CM) for the same index.

When the new index is in place, test if the index is updating again.

5
  • 6
    I believe Sitecore suggests/recommends that if you are running separate CD/CM servers, you should use Solr, not Lucene.
    – Pete Navarra
    Nov 22, 2018 at 19:09
  • Thanks Pete - alas, Lucene is what we have and it's not easy to change it now. Also, it worked flawlessly for years... until now. Nov 23, 2018 at 9:48
  • @EmanueleCiriachi: You should note that if you ever upgrade to a later version (like Sitecore 9) you will no longer be in a supported configuration. Lucene is no longer supported for production or scaled scenarios starting with Sitecore 9. As Pete Navarra mentions, even on 8.1 it is not recommended: doc.sitecore.net/sitecore_experience_platform/81/… Nov 23, 2018 at 15:45
  • Thanks Jay - we are actually planning to upgrade to 9.1 shortly. "Not supported" means it won't work, or it works but they won't provide official support? Nov 24, 2018 at 16:39
  • I'm quite sure I heard that 9.1 wouldn't work with Lucene anymore...When upgrading, you really should move to Solr
    – Gatogordo
    Nov 24, 2018 at 16:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.