Search alerts in 2013 don’t work – no relevant results found, no emails

I have a problem with a new Enterprise Search application: it does not send out emails with new results matching the term, and I have no idea why.

Say,

  1. I have an alert on a site to “immediately” alert me with changes to a library.

  2. In my enterprise search I then search for something that does not exist, i.e. some random collection of letters (“Nothing here matches your search”).

  3. I then set up an alert in my search to send out alerts for “New items in search result”.

  4. I then get an email saying the alert has been successfully created.

  5. I then create a word-document matching the criteria that did not return any results before (both in the content and title of the document) and upload that document to my library.

  6. Within a few minutes I then get an alert from the library that a new document has been added.

  7. The library is set up with a continuous crawl in the enterprise search, so within about 15 minutes that one result appears in the search results when I hit F5 in the search. But the second alert I would have expected – the one from the enterprise search – never comes.

But why?

From what I said above I assume that

  • SMTP broadly works,
  • the “immediate” timer job every 5 minutes broadly works, and
  • I’ve got the appropriate and required permissions.

This is what people typically suggest to check first.

What next?

The SchedSubscriptions table in my content db has an entry for my enterprise search alert. And I can see the timestamp in the NotifyTime(UTC) column moving every 24hrs – it just does not seem to send anything out.

In the timerlock table I can see my app server acquiring a lock every 5 minutes. And in the ULS logs of that server I can see a line saying “[…] Entering monitored scope (Timer Job job-immediate-alerts) […]” every 5 minutes. But no obvious errors.

I can also see it invoking the search on the web front end within the 2 seconds between entering and leaving the monitored scope. And in the ULS logs on that web front end in the same timespan I see a lot of query processing using my unique keyword – so far so expected.

But then on the web front end I get a message saying “Relevant Results: 0, Refinement Results: 0”, and on the app server “Search alert: '0' results”.

I don’t know where to go next. Why would the exact word I am looking for appearing in the title and content of a document not be deemed relevant when sending out an alert, but the same will appear on the result page when I manually search for it?

Update (2017-09-14)

I added another document that matches my criteria and again got the notification that something in the library has changed, but nothing from the search results.

On the WFE I get a line saying

Microsoft.Office.Server.Search.Query.Ims.ImsQueryInternal : New request: Query text ‘”xxxxxx-xxxxx”‘, Query template ‘{searchboxquery} […] QueryTemplateHelper: Query template ‘{searchboxquery}’ transformed to query text ‘”xxxxxx-xxxxx”‘ […]

and an additional search a few lines down

QueryTemplateHelper: Query template ‘{?{searchTerms} -ContentClass=urn:content-class:SPSPeople}’ transformed to query text ‘”xxxxxx-xxxxx” -ContentClass=urn:content-class:SPSPeople’. […]

followed by

Microsoft.Office.Server.Search.Query.Pipeline.Processing.SummarizerEvaluator : Unable to generate summaries and/or highlight properties since no results were found for ‘RelevantResults’ table.

and much further down

Timed out while executing QueryId PersonalFavorite Query SourceId cd0b4ea8-749c-4bcb-9c27-3cd8355bb774 ProviderId 8e35d350-e91e-4a6f-be79-5009e5ed2a84 CorrelationId 883e3371-3fa3-41ec-8f51-ace9a8839c54 ParentCorrelationId 883e3371-3fa3-41ec-8f51-ace9a8839c54 5bfabff0-2f50-47eb-b7c5-0a47276bdd4b

and

Microsoft.Office.Server.Search.Query.Ims.ImsQueryInternal : Number of tables in Result: 2, Relevant Results: 0, Refinement Results: 0 […] Microsoft.Ceres.InteractionEngine.Component.QueryWatcher : Aborting flow (FlowName=Microsoft.PersonalFavoritesProviderFlow, FlowId=00000000-0000-0000-0000-000000000000). Timeout after 15000 milliseconds. […]

Now, I assume the PersonalFavorite Query timeout is a different problem, because it happens after the bit that says no results were found for 'RelevantResults' table

But what I don’t understand if how SharePoint works out what has been added in the last day (and week) that is relevant for the email alert?