-
Notifications
You must be signed in to change notification settings - Fork 8.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[App Search] Continue polling empty engines even when they have a schema #112915
[App Search] Continue polling empty engines even when they have a schema #112915
Conversation
12122d2
to
18cae24
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 👍
The changes make sense when talking about the initial crawl but how will the experience be for subsequent crawls that could create new documents?
@orhantoy Just to clarify, during our migration to Kibana, product made a specific decision to go with only polling for initial documents. So this PR restores expected behavior. I needed to clear my conscience after the demo haha There's definitely nothing stopping us from improving that behavior! We could be polling all the time, in fact the logic here would be even simpler. Or we wanted to narrow the case we could do a constant poll only while a crawl is active, which would add some complexity instead to our existing logic instead. Our standards around how "reactive" our UX is without user action are kind of ambiguous, its definitely something we haven't prioritized on the UX side, little has changed since we were still in ruby templates. I think:
|
💚 Build Succeeded
Metrics [docs]Async chunks
History
To update your PR or re-run it, just comment with: |
…ema (#112915) (#113146) Co-authored-by: Byron Hulcher <[email protected]>
…ema (#112915) (#113145) Co-authored-by: Byron Hulcher <[email protected]>
Summary
When we implemented empty engine polling in Kibana, we decided we would end the poll if the poll response indicated that the engine had any documents or any fields in its schema. This creates a negative experience for the Crawler. If an engine is created and immediately the user adds a domain and begins crawling it, the crawler process adds fields to the schema before it begins uploading documents. This will cancel the poll, and views such as EngineOverview and Documents which have specific empty states when an engine has no documents won't leave their empty states until the page is refreshed.
After this change we will continue polling as long as there are no documents.
As a part of this, I have renamed two of our selectors to clarify their functionality going forward. I renamed
EngineLogic.values.isEngineEmpty
tohasNoDocuments
and renamedEngineLogic.values.isEngineSchemaEmpty
tohasEmptySchema
. This lines these selector names up withhasSchemaConflicts
,hasSchemaConflicts
andhasUnconfirmedSchemaFields
. I think our values ofisMetaEngine
andisSampleEngine
are fine to leave as is because they refer to an immutable property of the engine. These changes are in separate commits if we decide to roll this change back.Checklist