Support for split_the_query
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
Research direction
Start by tracing ElasticPress's full query and WP_Query result-population path, then compare it with WordPress's split_the_query and get_post behavior. Done would require a decided design for using Elasticsearch only to collect post IDs, with the performance and data-integrity tradeoffs addressed.
Written by the indexing model from the issue text.
Description
In short, WordPress supports a method of querying with WP_Query called split_the_query that only pulls the post IDs from the database in the main mysql query. It then calls get_post on each ID. This means it will often pull from the object cache per post.
This isn't that important in the default WP_Query class, as it's expected that you have a high degree of trust in synchronization between object cache and database.
I noticed ElasticPress does a "full" query, and then populates the results of WP_Query with the source data from Elasticsearch. So ES is not only used for the searching, it's also used for data population. I wondered if there has been much thought if it might be a good idea to only use ES for "post ID collection", and then use a similar split_the_query method to then pull each post via get_post, as this would reduce risk of data corruption via bad synchronization between elasticsearch and the mysql database.
Doing so should have a pretty small impact on performance, but could increase data integrity.
- Dominant language
- PHP
- Stars
- 1.3k
- Forks
- 325
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 24
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from 10up/ElasticPress
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
10up/ElasticPress#4402 · 1 comment ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 4/5 3-5 days Newbie friendliness 45/100
10up/ElasticPress#4390 ·
Maintainers usually reply within 1 day
-
[Release] 5.3.6Open
Difficulty 4/5 3-5 days Newbie friendliness 15/100
10up/ElasticPress#4388 ·
Maintainers usually reply within 1 day
-
Move AI Features from ElasticPress Labs to the ElasticPress PluginPossibly taken @ZacharyRener claimed this 124 days ago. Openenhancement
10up/ElasticPress#4316 · 2 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
Convert Pointers class to functional componentPossibly taken @ZacharyRener claimed this 288 days ago. Openenhancement
10up/ElasticPress#4261 · 1 assignee ·
Maintainers usually reply within 1 day
All issues in 10up/ElasticPress
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Automattic/blocks-engine#5444 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Automattic/static-site-importer#2869 ·
Maintainers usually reply within 1 day
-
0. Needs triage bug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
bug command:plugin-update scope:documentation
Difficulty 1/5 Under an hour Newbie friendliness 83/100
wp-cli/extension-command#572 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 67/100