[SERVER-19344] Move TextMatchableDocument out of the TextOrStage Created: 09/Jul/15  Updated: 06/Dec/22

Status: Backlog
Project: Core Server
Component/s: Internal Code, Text Search
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Minor - P4
Reporter: Adam Chelminski (Inactive) Assignee: Backlog - Query Execution
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Assigned Teams:
Query Execution
Participants:

 Description   

TextMatchableDocument is a MatchableDocument subclass created in the TextOrStage and used to perform covered matching on non-text fields of a compound text index.

Its existence in the TextOrStage makes the TextOrStage a lot more complex than it needs to be.

This logic should be moved to another stage (perhaps the FetchStage could be modified to support this, or a new TextFetchStage can be used instead of the normal FetchStage).

Removing the TextMatchableDocument from the TextOrStage allows for the following simplifications in the TextOrStage:

  • Remove the parameters txn, filter, and index from the constructor
  • Remove the kInit state, and the initStage method
  • Remove the private members _filter, _txn, _idRetrying, _recordCursor, and _index
  • Remove the handling of a MatchExpression filter
  • Remove all WriteConflictException handling logic (_idRetrying)

Generated at Thu Feb 08 03:50:39 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.