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>
  • 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 '18 at 15:35
  • The entire Sitecore.ContentSearch.Lucene.Index.Web.config and Sitecore.ContentSearch.Lucene.Index.Master.config? – Emanuele Ciriachi Nov 22 '18 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 '18 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 '18 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 '18 at 16:20
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.

  • 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 '18 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. – Emanuele Ciriachi Nov 23 '18 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/… – Jason St-Cyr Nov 23 '18 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? – Emanuele Ciriachi Nov 24 '18 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 '18 at 16:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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