1

On one of three CD servers every search we execute is sent to Azure Search like the following:

19660 02:11:05 INFO AzureSearch Query [sitecore_web_index]: &search=This_Is_Equal_ConstNode_Return_Nothing

I have confirmed that...

  • There are no significant differences in any of the config files between this server and the other CD servers
    • The only differences are database/redis connection strings and the ApplicationInsights.Role setting value
  • There are no differences in the bin directories between this server and the other CD servers

I have tried (unsuccessfully)...

  • Switching this server to use another CD server's web database
  • Restarting the server

To narrow down the issue, I also tried opening the same page in Experience Editor on the CM server and changing the sc_database in the query string to use the web database of the offending CD server. In this case, all of the searches work as expected. This leads me to believe the database is not the issue.

Environment

  • Sitecore 9.0.2
  • Azure PaaS
  • Although I don't know the resolution yet, Sitecore Support has responded to my ticket and told me that "The "This_Is_Equal_ConstNode_Return_Nothing" is added to search expression if queried field is missing in the index." – Dan Sinclair Aug 26 at 11:26
2

This issue was caused by the offending CD server referencing the wrong instance of the index. When we checked the core database's Properties table for which instance each of the CDs were referencing, we found that the two functional CDs were both referencing the currently active instance (sitecore-web-index-secondary, in our case), and the offending CD server was referencing sitecore-web-index.

To find out which ones are active/inactive, you can run the following on your coredatabase.Properties table (make sure to replace __XXX__ with the instance name of your Azure app service [e.g. RD123456789012]):

-- Find active index
SELECT * FROM Properties
WHERE [Key] LIKE '%sitecore_web%__XXX__%cloud_search_index_name'

-- Find inactive index
SELECT * FROM Properties
WHERE [Key] LIKE '%sitecore_web%__XXX__%cloud_rebuild_index_name'

Update from Sitecore Support

Sitecore Support confirmed that the This_Is_Equal_ConstNode_Return_Nothing keyword is used when a queried field is missing from the index. In our case it was because it was using the incorrect index instance because it had not switched to use the proper one.

There is a hotfix available, though they do not want it shared publicly:

The described behavior with properties table can be caused by the following bug fixed in Sitecore 9.1 (reference number 254072). As a result of this bug, a temporary inactive or newly added CD instance might not get the correct index reference after the index rebuild.

Adding this hotfix has resolved the underlying issue for us.

0

If this issue only occurs after rebuilding the CD index with Switch On Rebuild enabled, the issue may be related to a bug that was fixed in Sitecore 9.2 (release notes):

​​In Azure Search, the SwitchOnRebuildEventRemote event is shared through the EventQueue of the Web database instead of the system EventQueue.

To determine if this affects you, answer the two questions below:

  1. Is the web database shared by CM and CD instance?
  2. Does the issue affect the CD instance only?

If the answers are

  1. No
  2. Yes

there is a patch you can request from Sitecore Support to resolve the issue: 290638.

Note that this is a patch not a hotfix.

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.