@@ -83,14 +83,19 @@ since it relies on separate data structures to perform the search. Before
8383using the <<include-exclude, `excludes`>> parameter, make sure to review the
8484downsides of omitting fields from `_source`.
8585
86+ Another option is to use <<synthetic-source,synthetic `_source`>> if all
87+ your index fields support it.
88+
89+
8690[discrete]
8791=== Reduce the number of index segments
8892
8993{es} shards are composed of segments, which are internal storage elements in
90- the index. For approximate kNN search, {es} stores the dense vector values of
91- each segment as an HNSW graph. kNN search must check each segment, searching
92- through one HNSW graph after another. This means kNN search can be
93- significantly faster if there are fewer segments. By default, {es} periodically
94+ the index. For approximate kNN search, {es} stores the vector values of
95+ each segment as a separate HNSW graph, so kNN search must check each segment.
96+ The recent parallelization of kNN search made it much faster to search across
97+ multiple segments, but still kNN search can be up to several times
98+ faster if there are fewer segments. By default, {es} periodically
9499merges smaller segments into larger ones through a background
95100<<index-modules-merge, merge process>>. If this isn't sufficient, you can take
96101explicit steps to reduce the number of index segments.
0 commit comments