We've been having big problems in our multi-server environment with the Find indexer not always indexing one or all properties of a document, or not at all. It seems to be isolated to the event based indexer, the scheduled job always indexes everything correctly. Trying to re-save the page multiple times some times helps, but most often not.
It's been working OK on the production and staging servers but the testing servers and the local development servers have been more or less impossible to work with, find-wise.
Find has given us no errors in the logs, and even a custom serialization trace writer more or less says everything is OK when it's not.
I finally tried to set ContentIndexer.Invisible to false as per this answer on an old thread, and it seems to be working (still might be too early to tell but looks good so far). The docs say this setting forces the indexer to run in the shared event thread and not its own (it's true by default).
Does anybody know something about this and why it's happening and if it could be related to something else and not the thread setting? Can't seem to file a support ticket right now. Anyway it might help anyone else having weird indexing issues.
Which version of Find are you using. If Invisible is false the content indexer will index the content right away, instead of saving it to the queue. It might be interesting to look into the queue in db
Sorry didn't get a notification of your reply.
We're using 13.0.5. I have previously looked in the "tblFindIndexQueue" if that's the one you mean, and it's empty. By flipping Invisible to false, our issues have gone away, and another upside (?) of this is that we get possible indexing errors immediately (since it interrupts the main event thread).
Then your next step should be contacting the developer support service. Ask for Karl, he is specialized in this kind of issue ;)
Any luck with this one?, we have been experiencing the same behaviour, 98% of content appaers to index fine but that 2% causes an issue, sometimes it gets added to the index but when its published the "IsPendingPublish" flag doesnt get updated so its seen as unbublished in find, its a real pain to relicate and diagnose
@Benjamin, something I've run into several times is having multiple applications trying to index stuff. If two applications (for example a MVC app and service API app) indexes stuff from tblFindIndexQueue, different data will be sent to Find, perhaps due to different cached values or due to different code base.
For example, in one project I saw that both a MVC app and a service API ran the evented content indexer - that is, they both raced to dequeue items from tblFindIndexQueue, and the first one to dequeue, sent data to Find. The service API had no awareness of how the products were modelled, it didn't know what properties to include in the JSON, so when the service API happened to dequeue first, it sent incomplete data to the Find index.
As a result of this, I usually include Environment.MachineName for all Find documents, it helps with debugging and finding patterns in case of errors.