@@ -83,14 +83,19 @@ since it relies on separate data structures to perform the search. Before
83
83
using the <<include-exclude, `excludes`>> parameter, make sure to review the
84
84
downsides of omitting fields from `_source`.
85
85
86
+ Another option is to use <<synthetic-source,synthetic `_source`>> if all
87
+ your index fields support it.
88
+
89
+
86
90
[discrete]
87
91
=== Reduce the number of index segments
88
92
89
93
{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
94
99
merges smaller segments into larger ones through a background
95
100
<<index-modules-merge, merge process>>. If this isn't sufficient, you can take
96
101
explicit steps to reduce the number of index segments.
0 commit comments