JanusGraph / JanusGraph/janusgraph

Optimize retrieval of entity fields from index backends

Open
#1,681 0 comments 1 reaction 0 assignees View on GitHub
index/elasticsearch index/lucene index/solr kind/performance
Dominant language
Java
Stars
5.8k
Forks
1.2k
Avg merge
13h 53m
Merged PRs (30d)
6

Description

Currently only id and score are needed during the retrieval and only that are returned (for ElasticSearch this optimization was enabled in #1652 and for lucene this optimization was enabled in #1647).
For some queries we could eliminate a storage call by retrieving necessary data from the index backend.
For example, if we have a travarsal like `.V().order().by("age").values("name", "age")` and both `name` and `age` are indexed, we can retrieve them from the index backend during the search instead of making an additional call into the storage database.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the retrieval changes referenced in #1652 and #1647, then trace how indexed entity fields are fetched across the index backends. The work is complete when indexed fields needed by a traversal can be returned from the backend without an extra storage call, while non-indexed fields retain their existing behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
elasticsearch, java
Domain
databases, performance, search
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.