hermes-client-python 1.8.127__tar.gz → 1.8.129__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: hermes-client-python
3
- Version: 1.8.127
3
+ Version: 1.8.129
4
4
  Summary: Async Python client for Hermes search server
5
5
  Project-URL: Homepage, https://github.com/SpaceFrontiers/hermes
6
6
  Project-URL: Repository, https://github.com/SpaceFrontiers/hermes
@@ -277,3 +277,63 @@ uv run --group dev python generate_proto.py
277
277
  ## License
278
278
 
279
279
  MIT
280
+
281
+ ## Ranking diagnostics and recall traces
282
+
283
+ Both options default to false and preserve the requested ranking:
284
+
285
+ ```python
286
+ response = await client.search(
287
+ "articles",
288
+ query={
289
+ "fusion": {
290
+ "queries": [
291
+ {
292
+ "name": "title",
293
+ "query": {"match": {"field": "title", "text": "rust"}},
294
+ },
295
+ {"name": "body", "query": {"match": {"field": "body", "text": "rust"}}},
296
+ ]
297
+ }
298
+ },
299
+ include_rrf_scores=True,
300
+ tracing=True,
301
+ )
302
+ for hit in response.hits:
303
+ print(hit.score, hit.rrf_score, hit.rrf_contributions)
304
+ for shard in response.trace.shards:
305
+ for branch in shard.queries:
306
+ print(shard.shard_id, branch.query_name, branch.candidates)
307
+ ```
308
+
309
+ `rrf_score` and per-branch votes use organic nomination ranks merged across all
310
+ shards, independently of L1 or reranker scores. Ranks start at 1. `ordinal=None`
311
+ is document context; ordinal 0 is a real passage. Backfilled and score-only
312
+ features contribute no votes.
313
+
314
+ The trace retains every shard's bounded branch nominations and selected results,
315
+ including candidates absent from the final page, plus query trees and common
316
+ filters. Candidates contain addresses, raw scores and ordinals; stored fields
317
+ are loaded only for returned hits. Tracing does not expand retrieval depth or
318
+ rerun individual Boolean clauses. Oversized diagnostics and unsupported backends
319
+ fail explicitly. See the [scoring and tracing contract](../docs/candidate-rescoring.md).
320
+
321
+ For a named, scoped L1 query, specify the complete scoring formula:
322
+
323
+ ```python
324
+ l1 = {"formula": "0.2 * title + 0.8 * log1p(body) + 3 * rrf"}
325
+ ```
326
+
327
+ `formula` is the only L1 scoring interface. Coefficients, offsets and RRF
328
+ multipliers go in the expression; the former coefficient fields are removed.
329
+ Arithmetic, powers, logarithms, `sqrt`, `abs`, `exp`, `min`/`max` and trigonometry
330
+ are supported. Use `{body.bm25}` for punctuated branch names. `log` and `ln` are
331
+ natural logarithms; `log2` and `log10` select those bases. Missing branch values
332
+ use configured missing defaults, otherwise zero. Backfill remains optional.
333
+
334
+ The formula runs before passage selection and the document combiner. A formula
335
+ using `rrf` makes the broker obtain the complete bounded candidate and passage
336
+ union before global inference. Exports that exceed budgets fail explicitly.
337
+ Expressions are bounded to 4 KiB, 256 tokens and 32 parenthesis levels. Invalid
338
+ variables, invalid syntax and non-finite predictions fail explicitly. Servers
339
+ and brokers must support `formula_v1` (`candidate_scoring_version=3`).
@@ -253,3 +253,63 @@ uv run --group dev python generate_proto.py
253
253
  ## License
254
254
 
255
255
  MIT
256
+
257
+ ## Ranking diagnostics and recall traces
258
+
259
+ Both options default to false and preserve the requested ranking:
260
+
261
+ ```python
262
+ response = await client.search(
263
+ "articles",
264
+ query={
265
+ "fusion": {
266
+ "queries": [
267
+ {
268
+ "name": "title",
269
+ "query": {"match": {"field": "title", "text": "rust"}},
270
+ },
271
+ {"name": "body", "query": {"match": {"field": "body", "text": "rust"}}},
272
+ ]
273
+ }
274
+ },
275
+ include_rrf_scores=True,
276
+ tracing=True,
277
+ )
278
+ for hit in response.hits:
279
+ print(hit.score, hit.rrf_score, hit.rrf_contributions)
280
+ for shard in response.trace.shards:
281
+ for branch in shard.queries:
282
+ print(shard.shard_id, branch.query_name, branch.candidates)
283
+ ```
284
+
285
+ `rrf_score` and per-branch votes use organic nomination ranks merged across all
286
+ shards, independently of L1 or reranker scores. Ranks start at 1. `ordinal=None`
287
+ is document context; ordinal 0 is a real passage. Backfilled and score-only
288
+ features contribute no votes.
289
+
290
+ The trace retains every shard's bounded branch nominations and selected results,
291
+ including candidates absent from the final page, plus query trees and common
292
+ filters. Candidates contain addresses, raw scores and ordinals; stored fields
293
+ are loaded only for returned hits. Tracing does not expand retrieval depth or
294
+ rerun individual Boolean clauses. Oversized diagnostics and unsupported backends
295
+ fail explicitly. See the [scoring and tracing contract](../docs/candidate-rescoring.md).
296
+
297
+ For a named, scoped L1 query, specify the complete scoring formula:
298
+
299
+ ```python
300
+ l1 = {"formula": "0.2 * title + 0.8 * log1p(body) + 3 * rrf"}
301
+ ```
302
+
303
+ `formula` is the only L1 scoring interface. Coefficients, offsets and RRF
304
+ multipliers go in the expression; the former coefficient fields are removed.
305
+ Arithmetic, powers, logarithms, `sqrt`, `abs`, `exp`, `min`/`max` and trigonometry
306
+ are supported. Use `{body.bm25}` for punctuated branch names. `log` and `ln` are
307
+ natural logarithms; `log2` and `log10` select those bases. Missing branch values
308
+ use configured missing defaults, otherwise zero. Backfill remains optional.
309
+
310
+ The formula runs before passage selection and the document combiner. A formula
311
+ using `rrf` makes the broker obtain the complete bounded candidate and passage
312
+ union before global inference. Exports that exceed budgets fail explicitly.
313
+ Expressions are bounded to 4 KiB, 256 tokens and 32 parenthesis levels. Invalid
314
+ variables, invalid syntax and non-finite predictions fail explicitly. Servers
315
+ and brokers must support `formula_v1` (`candidate_scoring_version=3`).
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "hermes-client-python"
7
- version = "1.8.127"
7
+ version = "1.8.129"
8
8
  description = "Async Python client for Hermes search server"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -19,11 +19,15 @@ from .types import (
19
19
  MatchQuery,
20
20
  OrdinalScore,
21
21
  PassageScores,
22
+ QueryTrace,
22
23
  RangeQuery,
23
24
  Reranker,
25
+ RrfContribution,
24
26
  SearchHit,
25
27
  SearchResponse,
26
28
  SearchTimings,
29
+ SearchTrace,
30
+ ShardSearchTrace,
27
31
  SparseVectorQuery,
28
32
  TermQuery,
29
33
  VectorFieldStats,
@@ -40,6 +44,10 @@ __all__ = [
40
44
  "FusionCandidate",
41
45
  "FusionCandidateList",
42
46
  "PassageScores",
47
+ "RrfContribution",
48
+ "QueryTrace",
49
+ "SearchTrace",
50
+ "ShardSearchTrace",
43
51
  "DenseVectorQuery",
44
52
  "DocAddress",
45
53
  "Document",
@@ -11,6 +11,7 @@ from collections.abc import AsyncIterator
11
11
  from typing import Any
12
12
 
13
13
  import grpc
14
+ from google.protobuf.json_format import MessageToDict
14
15
  from grpc import aio
15
16
 
16
17
  from . import hermes_pb2 as pb
@@ -24,9 +25,13 @@ from .types import (
24
25
  IndexInfo,
25
26
  OrdinalScore,
26
27
  PassageScores,
28
+ QueryTrace,
29
+ RrfContribution,
27
30
  SearchHit,
28
31
  SearchResponse,
29
32
  SearchTimings,
33
+ SearchTrace,
34
+ ShardSearchTrace,
30
35
  VectorFieldStats,
31
36
  )
32
37
 
@@ -393,6 +398,8 @@ class HermesClient:
393
398
  candidate_limit: int = 0,
394
399
  l1: dict[str, Any] | None = None,
395
400
  score_export: dict[str, Any] | None = None,
401
+ include_rrf_scores: bool = False,
402
+ tracing: bool = False,
396
403
  timeout: float | None = None,
397
404
  ) -> SearchResponse:
398
405
  """Search for documents.
@@ -415,6 +422,10 @@ class HermesClient:
415
422
  reranker: Reranker dict matching proto Reranker message
416
423
  candidate_limit: Shared first-stage candidate pool. Zero uses the
417
424
  result window; explicit values are capped at 2x that window.
425
+ include_rrf_scores: Add independent RRF scores and per-branch votes
426
+ to fusion hits, preserving the requested ranking. Default false.
427
+ tracing: Preserve every shard's bounded branch nominations, query
428
+ provenance and selected results in response.trace. Default false.
418
429
 
419
430
  Returns:
420
431
  SearchResponse with hits
@@ -482,6 +493,8 @@ class HermesClient:
482
493
  reranker=pb_reranker,
483
494
  candidate_limit=candidate_limit,
484
495
  l1=pb.L1Ranking(**l1) if l1 is not None else None,
496
+ include_rrf_scores=include_rrf_scores,
497
+ tracing=tracing,
485
498
  score_export=pb.ScoreExport(**score_export)
486
499
  if score_export is not None
487
500
  else None,
@@ -491,12 +504,22 @@ class HermesClient:
491
504
  request, timeout=self._deadline(timeout)
492
505
  )
493
506
 
494
- if l1 is not None and response.ranking_method != "linear_v2":
507
+ expected_l1 = "formula_v1"
508
+ if l1 is not None and response.ranking_method != expected_l1:
495
509
  raise RuntimeError(
496
- "L1 requires a backend with linear_v2 ranking semantics; "
510
+ f"L1 requires a backend with {expected_l1} ranking semantics; "
497
511
  f"received {response.ranking_method!r}"
498
512
  )
499
513
 
514
+ if tracing and not response.HasField("trace"):
515
+ raise RuntimeError("Backend omitted requested search trace; upgrade Hermes")
516
+ if include_rrf_scores and any(
517
+ not hit.HasField("rrf_score") for hit in response.hits
518
+ ):
519
+ raise RuntimeError(
520
+ "Backend omitted requested RRF diagnostics; upgrade Hermes"
521
+ )
522
+
500
523
  hits = [
501
524
  SearchHit(
502
525
  address=DocAddress(
@@ -504,6 +527,17 @@ class HermesClient:
504
527
  doc_id=hit.address.doc_id,
505
528
  ),
506
529
  score=hit.score,
530
+ rrf_score=hit.rrf_score if hit.HasField("rrf_score") else None,
531
+ rrf_contributions=[
532
+ RrfContribution(
533
+ query_index=vote.query_index,
534
+ query_name=vote.query_name,
535
+ rank=vote.rank,
536
+ score=vote.score,
537
+ ordinal=vote.ordinal if vote.HasField("ordinal") else None,
538
+ )
539
+ for vote in hit.rrf_contributions
540
+ ],
507
541
  fields={k: _from_field_value_list(v) for k, v in hit.fields.items()},
508
542
  candidate_scores=CandidateScores(
509
543
  document=dict(hit.candidate_scores.document),
@@ -541,6 +575,9 @@ class HermesClient:
541
575
  return SearchResponse(
542
576
  hits=hits,
543
577
  total_hits=response.total_hits,
578
+ trace=_from_search_trace(response.trace)
579
+ if response.HasField("trace")
580
+ else None,
544
581
  took_ms=response.took_ms,
545
582
  timings=timings,
546
583
  ranking_method=response.ranking_method,
@@ -989,3 +1026,53 @@ def _build_reranker(r: dict[str, Any]) -> pb.Reranker:
989
1026
  binary_vector=r.get("binary_vector", b""),
990
1027
  rrf_k=r.get("rrf_k", 0),
991
1028
  )
1029
+
1030
+
1031
+ def _from_trace_candidate(candidate: pb.FusionCandidate) -> FusionCandidate:
1032
+ return FusionCandidate(
1033
+ address=DocAddress(candidate.address.segment_id, candidate.address.doc_id),
1034
+ score=candidate.score,
1035
+ ordinal_scores=[
1036
+ OrdinalScore(row.ordinal, row.score) for row in candidate.ordinal_scores
1037
+ ],
1038
+ )
1039
+
1040
+
1041
+ def _from_search_trace(trace: pb.SearchTrace) -> SearchTrace:
1042
+ return SearchTrace(
1043
+ shards=[
1044
+ ShardSearchTrace(
1045
+ shard_id=shard.shard_id,
1046
+ backend_id=shard.backend_id,
1047
+ index_name=shard.index_name,
1048
+ ranking_method=shard.ranking_method,
1049
+ truncated=shard.truncated,
1050
+ filters=[
1051
+ MessageToDict(query, preserving_proto_field_name=True)
1052
+ for query in shard.filters
1053
+ ],
1054
+ selected=[
1055
+ _from_trace_candidate(candidate) for candidate in shard.selected
1056
+ ],
1057
+ queries=[
1058
+ QueryTrace(
1059
+ query_index=branch.query_index,
1060
+ query_name=branch.query_name,
1061
+ query=MessageToDict(
1062
+ branch.query, preserving_proto_field_name=True
1063
+ ),
1064
+ scope=branch.scope,
1065
+ score_only=branch.score_only,
1066
+ candidate_depth=branch.candidate_depth,
1067
+ total_seen=branch.total_seen,
1068
+ candidates=[
1069
+ _from_trace_candidate(candidate)
1070
+ for candidate in branch.candidates
1071
+ ],
1072
+ )
1073
+ for branch in shard.queries
1074
+ ],
1075
+ )
1076
+ for shard in trace.shards
1077
+ ]
1078
+ )
@@ -0,0 +1,206 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # NO CHECKED-IN PROTOBUF GENCODE
3
+ # source: hermes.proto
4
+ # Protobuf Python Version: 6.31.1
5
+ """Generated protocol buffer code."""
6
+
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
10
+ from google.protobuf import symbol_database as _symbol_database
11
+ from google.protobuf.internal import builder as _builder
12
+
13
+ _runtime_version.ValidateProtobufRuntimeVersion(
14
+ _runtime_version.Domain.PUBLIC, 6, 31, 1, "", "hermes.proto"
15
+ )
16
+ # @@protoc_insertion_point(imports)
17
+
18
+ _sym_db = _symbol_database.Default()
19
+
20
+
21
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(
22
+ b'\n\x0chermes.proto\x12\x06hermes"\x86\x04\n\x05Query\x12!\n\x04term\x18\x01 \x01(\x0b\x32\x11.hermes.TermQueryH\x00\x12\'\n\x07\x62oolean\x18\x02 \x01(\x0b\x32\x14.hermes.BooleanQueryH\x00\x12#\n\x05\x62oost\x18\x03 \x01(\x0b\x32\x12.hermes.BoostQueryH\x00\x12\x1f\n\x03\x61ll\x18\x04 \x01(\x0b\x32\x10.hermes.AllQueryH\x00\x12\x32\n\rsparse_vector\x18\x05 \x01(\x0b\x32\x19.hermes.SparseVectorQueryH\x00\x12\x30\n\x0c\x64\x65nse_vector\x18\x06 \x01(\x0b\x32\x18.hermes.DenseVectorQueryH\x00\x12#\n\x05match\x18\x07 \x01(\x0b\x32\x12.hermes.MatchQueryH\x00\x12#\n\x05range\x18\x08 \x01(\x0b\x32\x12.hermes.RangeQueryH\x00\x12%\n\x06prefix\x18\t \x01(\x0b\x32\x13.hermes.PrefixQueryH\x00\x12=\n\x13\x62inary_dense_vector\x18\n \x01(\x0b\x32\x1e.hermes.BinaryDenseVectorQueryH\x00\x12%\n\x06\x66usion\x18\x0b \x01(\x0b\x32\x13.hermes.FusionQueryH\x00\x12%\n\x06phrase\x18\x0c \x01(\x0b\x32\x13.hermes.PhraseQueryH\x00\x42\x07\n\x05query"\x82\x01\n\rWeightedQuery\x12\x1c\n\x05query\x18\x01 \x01(\x0b\x32\r.hermes.Query\x12\x0e\n\x06weight\x18\x02 \x01(\x02\x12\x0c\n\x04name\x18\x03 \x01(\t\x12!\n\x05scope\x18\x04 \x01(\x0e\x32\x12.hermes.ScoreScope\x12\x12\n\nscore_only\x18\x05 \x01(\x08"\xd1\x01\n\x0b\x46usionQuery\x12&\n\x07queries\x18\x01 \x03(\x0b\x32\x15.hermes.WeightedQuery\x12$\n\x06method\x18\x02 \x01(\x0e\x32\x14.hermes.FusionMethod\x12\r\n\x05rrf_k\x18\x03 \x01(\x02\x12,\n\x08\x63ombiner\x18\x05 \x01(\x0e\x32\x1a.hermes.MultiValueCombiner\x12\x1e\n\x07\x66ilters\x18\x06 \x03(\x0b\x32\r.hermes.Query\x12\x17\n\x0f\x63\x61ndidate_depth\x18\x07 \x01(\r"\xf3\x01\n\tL1Ranking\x12\x15\n\x08\x62\x61\x63kfill\x18\x04 \x01(\x08H\x00\x88\x01\x01\x12<\n\x0emissing_values\x18\x05 \x03(\x0b\x32$.hermes.L1Ranking.MissingValuesEntry\x12\x0f\n\x07\x66ormula\x18\x07 \x01(\t\x1a\x34\n\x12MissingValuesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\x42\x0b\n\t_backfillJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04J\x04\x08\x06\x10\x07R\x07weightsR\x04\x62iasR\ntransformsR\nrrf_weight"B\n\x0bScoreExport\x12\x1d\n\x15passages_per_document\x18\x01 \x01(\r\x12\x14\n\x0c\x61ll_passages\x18\x02 \x01(\x08"\xcb\x02\n\x11SparseVectorQuery\x12\r\n\x05\x66ield\x18\x01 \x01(\t\x12\x0f\n\x07indices\x18\x02 \x03(\r\x12\x0e\n\x06values\x18\x03 \x03(\x02\x12\x0c\n\x04text\x18\x04 \x01(\t\x12,\n\x08\x63ombiner\x18\x05 \x01(\x0e\x32\x1a.hermes.MultiValueCombiner\x12\x13\n\x0bheap_factor\x18\x06 \x01(\x02\x12\x1c\n\x14\x63ombiner_temperature\x18\x07 \x01(\x02\x12\x16\n\x0e\x63ombiner_top_k\x18\x08 \x01(\r\x12\x16\n\x0e\x63ombiner_decay\x18\t \x01(\x02\x12\x18\n\x10weight_threshold\x18\n \x01(\x02\x12\x16\n\x0emax_query_dims\x18\x0b \x01(\r\x12\x0f\n\x07pruning\x18\x0c \x01(\x02\x12\x16\n\tlsp_gamma\x18\r \x01(\rH\x00\x88\x01\x01\x42\x0c\n\n_lsp_gamma"\xbd\x01\n\x10\x44\x65nseVectorQuery\x12\r\n\x05\x66ield\x18\x01 \x01(\t\x12\x0e\n\x06vector\x18\x02 \x03(\x02\x12\x0e\n\x06nprobe\x18\x03 \x01(\r\x12,\n\x08\x63ombiner\x18\x05 \x01(\x0e\x32\x1a.hermes.MultiValueCombiner\x12\x1c\n\x14\x63ombiner_temperature\x18\x06 \x01(\x02\x12\x16\n\x0e\x63ombiner_top_k\x18\x07 \x01(\r\x12\x16\n\x0e\x63ombiner_decay\x18\x08 \x01(\x02"\xb3\x01\n\x16\x42inaryDenseVectorQuery\x12\r\n\x05\x66ield\x18\x01 \x01(\t\x12\x0e\n\x06vector\x18\x02 \x01(\x0c\x12,\n\x08\x63ombiner\x18\x03 \x01(\x0e\x32\x1a.hermes.MultiValueCombiner\x12\x1c\n\x14\x63ombiner_temperature\x18\x04 \x01(\x02\x12\x16\n\x0e\x63ombiner_top_k\x18\x05 \x01(\r\x12\x16\n\x0e\x63ombiner_decay\x18\x06 \x01(\x02"@\n\tTermQuery\x12\r\n\x05\x66ield\x18\x01 \x01(\t\x12\x0c\n\x04term\x18\x02 \x01(\t\x12\x16\n\x0etokenizer_hint\x18\x03 \x01(\t"k\n\x0c\x42ooleanQuery\x12\x1b\n\x04must\x18\x01 \x03(\x0b\x32\r.hermes.Query\x12\x1d\n\x06should\x18\x02 \x03(\x0b\x32\r.hermes.Query\x12\x1f\n\x08must_not\x18\x03 \x03(\x0b\x32\r.hermes.Query"9\n\nBoostQuery\x12\x1c\n\x05query\x18\x01 \x01(\x0b\x32\r.hermes.Query\x12\r\n\x05\x62oost\x18\x02 \x01(\x02"\n\n\x08\x41llQuery"\xe7\x01\n\nRangeQuery\x12\r\n\x05\x66ield\x18\x01 \x01(\t\x12\x14\n\x07min_u64\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x14\n\x07max_u64\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x14\n\x07min_i64\x18\x04 \x01(\x03H\x02\x88\x01\x01\x12\x14\n\x07max_i64\x18\x05 \x01(\x03H\x03\x88\x01\x01\x12\x14\n\x07min_f64\x18\x06 \x01(\x01H\x04\x88\x01\x01\x12\x14\n\x07max_f64\x18\x07 \x01(\x01H\x05\x88\x01\x01\x42\n\n\x08_min_u64B\n\n\x08_max_u64B\n\n\x08_min_i64B\n\n\x08_max_i64B\n\n\x08_min_f64B\n\n\x08_max_f64"\x9d\x01\n\nMatchQuery\x12\r\n\x05\x66ield\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x16\n\x0etokenizer_hint\x18\x03 \x01(\t\x12\x18\n\x10proximity_weight\x18\x04 \x01(\x02\x12\x18\n\x10proximity_window\x18\x05 \x01(\r\x12\x13\n\x0bheap_factor\x18\x06 \x01(\x02\x12\x11\n\tmax_terms\x18\x07 \x01(\r"P\n\x0bPhraseQuery\x12\r\n\x05\x66ield\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x0c\n\x04slop\x18\x03 \x01(\r\x12\x16\n\x0etokenizer_hint\x18\x04 \x01(\t",\n\x0bPrefixQuery\x12\r\n\x05\x66ield\x18\x01 \x01(\t\x12\x0e\n\x06prefix\x18\x02 \x01(\t"\xe4\x01\n\x08Reranker\x12\r\n\x05\x66ield\x18\x01 \x01(\t\x12\x0e\n\x06vector\x18\x02 \x03(\x02\x12,\n\x08\x63ombiner\x18\x04 \x01(\x0e\x32\x1a.hermes.MultiValueCombiner\x12\x1c\n\x14\x63ombiner_temperature\x18\x05 \x01(\x02\x12\x16\n\x0e\x63ombiner_top_k\x18\x06 \x01(\r\x12\x16\n\x0e\x63ombiner_decay\x18\x07 \x01(\x02\x12\x17\n\x0fmatryoshka_dims\x18\x08 \x01(\r\x12\x15\n\rbinary_vector\x18\t \x01(\x0c\x12\r\n\x05rrf_k\x18\n \x01(\x02"\xeb\x02\n\rSearchRequest\x12\x12\n\nindex_name\x18\x01 \x01(\t\x12\x1c\n\x05query\x18\x02 \x01(\x0b\x32\r.hermes.Query\x12\r\n\x05limit\x18\x03 \x01(\r\x12\x0e\n\x06offset\x18\x04 \x01(\r\x12\x16\n\x0e\x66ields_to_load\x18\x05 \x03(\t\x12"\n\x08reranker\x18\x06 \x01(\x0b\x32\x10.hermes.Reranker\x12\x17\n\x0f\x63\x61ndidate_limit\x18\x07 \x01(\r\x12\x16\n\x0etime_budget_ms\x18\x08 \x01(\x04\x12%\n\ntext_stats\x18\t \x01(\x0b\x32\x11.hermes.TextStats\x12\x1d\n\x02l1\x18\n \x01(\x0b\x32\x11.hermes.L1Ranking\x12)\n\x0cscore_export\x18\x0b \x01(\x0b\x32\x13.hermes.ScoreExport\x12\x1a\n\x12include_rrf_scores\x18\x0c \x01(\x08\x12\x0f\n\x07tracing\x18\r \x01(\x08"G\n\x13GetTextStatsRequest\x12\x12\n\nindex_name\x18\x01 \x01(\t\x12\x1c\n\x05query\x18\x02 \x01(\x0b\x32\r.hermes.Query"8\n\x14GetTextStatsResponse\x12 \n\x05stats\x18\x01 \x01(\x0b\x32\x11.hermes.TextStats"G\n\tTextStats\x12\x12\n\ntotal_docs\x18\x01 \x01(\x04\x12&\n\x06\x66ields\x18\x02 \x03(\x0b\x32\x16.hermes.TextFieldStats"i\n\x0eTextFieldStats\x12\r\n\x05\x66ield\x18\x01 \x01(\t\x12\x13\n\x0b\x63orpus_size\x18\x02 \x01(\x04\x12\x0f\n\x07\x61vg_len\x18\x03 \x01(\x02\x12"\n\x05terms\x18\x04 \x03(\x0b\x32\x13.hermes.TermDocFreq"-\n\x0bTermDocFreq\x12\x0c\n\x04term\x18\x01 \x01(\x0c\x12\x10\n\x08\x64oc_freq\x18\x02 \x01(\x04"0\n\nDocAddress\x12\x12\n\nsegment_id\x18\x01 \x01(\t\x12\x0e\n\x06\x64oc_id\x18\x02 \x01(\r"\xf0\x02\n\tSearchHit\x12#\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0b\x32\x12.hermes.DocAddress\x12\r\n\x05score\x18\x02 \x01(\x02\x12-\n\x06\x66ields\x18\x03 \x03(\x0b\x32\x1d.hermes.SearchHit.FieldsEntry\x12,\n\x0eordinal_scores\x18\x04 \x03(\x0b\x32\x14.hermes.OrdinalScore\x12\x31\n\x10\x63\x61ndidate_scores\x18\x05 \x01(\x0b\x32\x17.hermes.CandidateScores\x12\x16\n\trrf_score\x18\x06 \x01(\x02H\x00\x88\x01\x01\x12\x32\n\x11rrf_contributions\x18\x07 \x03(\x0b\x32\x17.hermes.RrfContribution\x1a\x45\n\x0b\x46ieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.hermes.FieldValueList:\x02\x38\x01\x42\x0c\n\n_rrf_score"y\n\x0fRrfContribution\x12\x13\n\x0bquery_index\x18\x01 \x01(\r\x12\x12\n\nquery_name\x18\x02 \x01(\t\x12\x0c\n\x04rank\x18\x03 \x01(\r\x12\r\n\x05score\x18\x04 \x01(\x02\x12\x14\n\x07ordinal\x18\x05 \x01(\rH\x00\x88\x01\x01\x42\n\n\x08_ordinal"\xbd\x01\n\x0f\x43\x61ndidateScores\x12\x37\n\x08\x64ocument\x18\x01 \x03(\x0b\x32%.hermes.CandidateScores.DocumentEntry\x12\'\n\x08passages\x18\x02 \x03(\x0b\x32\x15.hermes.PassageScores\x12\x17\n\x0fscored_passages\x18\x03 \x01(\r\x1a/\n\rDocumentEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01"\xa6\x01\n\rPassageScores\x12\x0f\n\x07ordinal\x18\x01 \x01(\r\x12\x31\n\x06scores\x18\x02 \x03(\x0b\x32!.hermes.PassageScores.ScoresEntry\x12\x15\n\x08l1_score\x18\x03 \x01(\x02H\x00\x88\x01\x01\x1a-\n\x0bScoresEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x42\x0b\n\t_l1_score"4\n\x0e\x46ieldValueList\x12"\n\x06values\x18\x01 \x03(\x0b\x32\x12.hermes.FieldValue".\n\x0cOrdinalScore\x12\x0f\n\x07ordinal\x18\x01 \x01(\r\x12\r\n\x05score\x18\x02 \x01(\x02"\xfa\x01\n\nFieldValue\x12\x0e\n\x04text\x18\x01 \x01(\tH\x00\x12\r\n\x03u64\x18\x02 \x01(\x04H\x00\x12\r\n\x03i64\x18\x03 \x01(\x03H\x00\x12\r\n\x03\x66\x36\x34\x18\x04 \x01(\x01H\x00\x12\x15\n\x0b\x62ytes_value\x18\x05 \x01(\x0cH\x00\x12-\n\rsparse_vector\x18\x06 \x01(\x0b\x32\x14.hermes.SparseVectorH\x00\x12+\n\x0c\x64\x65nse_vector\x18\x07 \x01(\x0b\x32\x13.hermes.DenseVectorH\x00\x12\x14\n\njson_value\x18\x08 \x01(\tH\x00\x12\x1d\n\x13\x62inary_dense_vector\x18\t \x01(\x0cH\x00\x42\x07\n\x05value"/\n\x0cSparseVector\x12\x0f\n\x07indices\x18\x01 \x03(\r\x12\x0e\n\x06values\x18\x02 \x03(\x02"\x1d\n\x0b\x44\x65nseVector\x12\x0e\n\x06values\x18\x01 \x03(\x02"\x85\x02\n\x0eSearchResponse\x12\x1f\n\x04hits\x18\x01 \x03(\x0b\x32\x11.hermes.SearchHit\x12\x12\n\ntotal_hits\x18\x02 \x01(\x04\x12\x0f\n\x07took_ms\x18\x03 \x01(\x04\x12&\n\x07timings\x18\x04 \x01(\x0b\x32\x15.hermes.SearchTimings\x12\x11\n\ttruncated\x18\x05 \x01(\x08\x12\x16\n\x0eranking_method\x18\x06 \x01(\t\x12\x36\n\x11\x66usion_candidates\x18\x07 \x03(\x0b\x32\x1b.hermes.FusionCandidateList\x12"\n\x05trace\x18\x08 \x01(\x0b\x32\x13.hermes.SearchTrace"7\n\x0bSearchTrace\x12(\n\x06shards\x18\x01 \x03(\x0b\x32\x18.hermes.ShardSearchTrace"\xe7\x01\n\x10ShardSearchTrace\x12\x10\n\x08shard_id\x18\x01 \x01(\t\x12\x12\n\nbackend_id\x18\x02 \x01(\t\x12\x12\n\nindex_name\x18\x03 \x01(\t\x12#\n\x07queries\x18\x04 \x03(\x0b\x32\x12.hermes.QueryTrace\x12)\n\x08selected\x18\x05 \x03(\x0b\x32\x17.hermes.FusionCandidate\x12\x16\n\x0eranking_method\x18\x06 \x01(\t\x12\x11\n\ttruncated\x18\x07 \x01(\x08\x12\x1e\n\x07\x66ilters\x18\x08 \x03(\x0b\x32\r.hermes.Query"\xe4\x01\n\nQueryTrace\x12\x13\n\x0bquery_index\x18\x01 \x01(\r\x12\x12\n\nquery_name\x18\x02 \x01(\t\x12\x1c\n\x05query\x18\x03 \x01(\x0b\x32\r.hermes.Query\x12!\n\x05scope\x18\x04 \x01(\x0e\x32\x12.hermes.ScoreScope\x12\x12\n\nscore_only\x18\x05 \x01(\x08\x12\x17\n\x0f\x63\x61ndidate_depth\x18\x06 \x01(\r\x12\x12\n\ntotal_seen\x18\x07 \x01(\r\x12+\n\ncandidates\x18\x08 \x03(\x0b\x32\x17.hermes.FusionCandidate"W\n\x13\x46usionCandidateList\x12\x13\n\x0bquery_index\x18\x01 \x01(\r\x12+\n\ncandidates\x18\x02 \x03(\x0b\x32\x17.hermes.FusionCandidate"s\n\x0f\x46usionCandidate\x12#\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0b\x32\x12.hermes.DocAddress\x12\r\n\x05score\x18\x02 \x01(\x02\x12,\n\x0eordinal_scores\x18\x03 \x03(\x0b\x32\x14.hermes.OrdinalScore"v\n\rSearchTimings\x12\x11\n\tsearch_us\x18\x01 \x01(\x04\x12\x11\n\trerank_us\x18\x02 \x01(\x04\x12\x0f\n\x07load_us\x18\x03 \x01(\x04\x12\x10\n\x08total_us\x18\x04 \x01(\x04\x12\x1c\n\x14\x63\x61ndidate_scoring_us\x18\x05 \x01(\x04"M\n\x12GetDocumentRequest\x12\x12\n\nindex_name\x18\x01 \x01(\t\x12#\n\x07\x61\x64\x64ress\x18\x02 \x01(\x0b\x32\x12.hermes.DocAddress"\x95\x01\n\x13GetDocumentResponse\x12\x37\n\x06\x66ields\x18\x01 \x03(\x0b\x32\'.hermes.GetDocumentResponse.FieldsEntry\x1a\x45\n\x0b\x46ieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.hermes.FieldValueList:\x02\x38\x01")\n\x13GetIndexInfoRequest\x12\x12\n\nindex_name\x18\x01 \x01(\t"\xb1\x02\n\x14GetIndexInfoResponse\x12\x12\n\nindex_name\x18\x01 \x01(\t\x12\x10\n\x08num_docs\x18\x02 \x01(\r\x12\x14\n\x0cnum_segments\x18\x03 \x01(\r\x12\x0e\n\x06schema\x18\x04 \x01(\t\x12)\n\x0cmemory_stats\x18\x05 \x01(\x0b\x32\x13.hermes.MemoryStats\x12.\n\x0cvector_stats\x18\x06 \x03(\x0b\x32\x18.hermes.VectorFieldStats\x12*\n\x0btext_fields\x18\x07 \x03(\x0b\x32\x15.hermes.TextFieldInfo\x12!\n\x19\x63\x61ndidate_scoring_version\x18\x08 \x01(\r\x12#\n\x1bunprepared_candidate_fields\x18\t \x03(\t"y\n\rTextFieldInfo\x12\r\n\x05\x66ield\x18\x01 \x01(\t\x12\x0f\n\x07lexical\x18\x02 \x01(\x08\x12\x12\n\nhint_field\x18\x03 \x01(\t\x12\x10\n\x08variants\x18\x04 \x01(\x08\x12\x11\n\tpositions\x18\x05 \x01(\x08\x12\x0f\n\x07\x63hunked\x18\x06 \x01(\x08"\x83\x01\n\x10VectorFieldStats\x12\x12\n\nfield_name\x18\x01 \x01(\t\x12\x13\n\x0bvector_type\x18\x02 \x01(\t\x12\x15\n\rtotal_vectors\x18\x03 \x01(\x04\x12\x11\n\tdimension\x18\x04 \x01(\r\x12\x1c\n\x14\x61vg_terms_per_vector\x18\x05 \x01(\x02"\x8c\x01\n\x0bMemoryStats\x12\x13\n\x0btotal_bytes\x18\x01 \x01(\x04\x12\x34\n\x0findexing_buffer\x18\x02 \x01(\x0b\x32\x1b.hermes.IndexingBufferStats\x12\x32\n\x0esegment_reader\x18\x03 \x01(\x0b\x32\x1a.hermes.SegmentReaderStats"\xdf\x01\n\x13IndexingBufferStats\x12\x13\n\x0btotal_bytes\x18\x01 \x01(\x04\x12\x16\n\x0epostings_bytes\x18\x02 \x01(\x04\x12\x1c\n\x14sparse_vectors_bytes\x18\x03 \x01(\x04\x12\x1b\n\x13\x64\x65nse_vectors_bytes\x18\x04 \x01(\x04\x12\x16\n\x0einterner_bytes\x18\x05 \x01(\x04\x12\x1c\n\x14position_index_bytes\x18\x06 \x01(\x04\x12\x14\n\x0cpending_docs\x18\x07 \x01(\r\x12\x14\n\x0cunique_terms\x18\x08 \x01(\r"\xb7\x01\n\x12SegmentReaderStats\x12\x13\n\x0btotal_bytes\x18\x01 \x01(\x04\x12\x1d\n\x15term_dict_cache_bytes\x18\x02 \x01(\x04\x12\x19\n\x11store_cache_bytes\x18\x03 \x01(\x04\x12\x1a\n\x12sparse_index_bytes\x18\x04 \x01(\x04\x12\x19\n\x11\x64\x65nse_index_bytes\x18\x05 \x01(\x04\x12\x1b\n\x13num_segments_loaded\x18\x06 \x01(\r"8\n\x12\x43reateIndexRequest\x12\x12\n\nindex_name\x18\x01 \x01(\t\x12\x0e\n\x06schema\x18\x02 \x01(\t"&\n\x13\x43reateIndexResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08"=\n\nFieldEntry\x12\x0c\n\x04name\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.hermes.FieldValue"3\n\rNamedDocument\x12"\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x12.hermes.FieldEntry"Z\n\x1a\x42\x61tchIndexDocumentsRequest\x12\x12\n\nindex_name\x18\x01 \x01(\t\x12(\n\tdocuments\x18\x02 \x03(\x0b\x32\x15.hermes.NamedDocument"p\n\x1b\x42\x61tchIndexDocumentsResponse\x12\x15\n\rindexed_count\x18\x01 \x01(\r\x12\x13\n\x0b\x65rror_count\x18\x02 \x01(\r\x12%\n\x06\x65rrors\x18\x03 \x03(\x0b\x32\x15.hermes.DocumentError"-\n\rDocumentError\x12\r\n\x05index\x18\x01 \x01(\r\x12\r\n\x05\x65rror\x18\x02 \x01(\t"N\n\x14IndexDocumentRequest\x12\x12\n\nindex_name\x18\x01 \x01(\t\x12"\n\x06\x66ields\x18\x02 \x03(\x0b\x32\x12.hermes.FieldEntry"V\n\x16IndexDocumentsResponse\x12\x15\n\rindexed_count\x18\x01 \x01(\r\x12%\n\x06\x65rrors\x18\x02 \x03(\x0b\x32\x15.hermes.DocumentError"#\n\rCommitRequest\x12\x12\n\nindex_name\x18\x01 \x01(\t"3\n\x0e\x43ommitResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x10\n\x08num_docs\x18\x02 \x01(\r"\'\n\x11\x46orceMergeRequest\x12\x12\n\nindex_name\x18\x01 \x01(\t";\n\x12\x46orceMergeResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x14\n\x0cnum_segments\x18\x02 \x01(\r"(\n\x12\x44\x65leteIndexRequest\x12\x12\n\nindex_name\x18\x01 \x01(\t"&\n\x13\x44\x65leteIndexResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08"\x14\n\x12ListIndexesRequest"*\n\x13ListIndexesResponse\x12\x13\n\x0bindex_names\x18\x01 \x03(\t"/\n\x19RetrainVectorIndexRequest\x12\x12\n\nindex_name\x18\x01 \x01(\t"-\n\x1aRetrainVectorIndexResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08"W\n\x17\x41lterVectorIndexRequest\x12\x12\n\nindex_name\x18\x01 \x01(\t\x12\x12\n\nfield_name\x18\x02 \x01(\t\x12\x14\n\x0c\x66ield_schema\x18\x03 \x01(\t"h\n\x18\x41lterVectorIndexResponse\x12\x1e\n\x16publication_generation\x18\x01 \x01(\x04\x12,\n\x05state\x18\x02 \x01(\x0e\x32\x1d.hermes.VectorIndexAlterState"$\n\x0eReorderRequest\x12\x12\n\nindex_name\x18\x01 \x01(\t"8\n\x0fReorderResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x14\n\x0cnum_segments\x18\x02 \x01(\r*Y\n\x0c\x46usionMethod\x12\x0e\n\nFUSION_RRF\x10\x00\x12"\n\x1e\x46USION_NORMALIZED_WEIGHTED_SUM\x10\x01\x12\x15\n\x11\x46USION_CANDIDATES\x10\x02*Z\n\nScoreScope\x12\x1b\n\x17SCORE_SCOPE_UNSPECIFIED\x10\x00\x12\x18\n\x14SCORE_SCOPE_DOCUMENT\x10\x01\x12\x15\n\x11SCORE_SCOPE_CHUNK\x10\x02*\x81\x01\n\x12MultiValueCombiner\x12\x18\n\x14\x43OMBINER_LOG_SUM_EXP\x10\x00\x12\x10\n\x0c\x43OMBINER_MAX\x10\x01\x12\x10\n\x0c\x43OMBINER_AVG\x10\x02\x12\x10\n\x0c\x43OMBINER_SUM\x10\x03\x12\x1b\n\x17\x43OMBINER_WEIGHTED_TOP_K\x10\x04*\xbf\x01\n\x15VectorIndexAlterState\x12(\n$VECTOR_INDEX_ALTER_STATE_UNSPECIFIED\x10\x00\x12"\n\x1eVECTOR_INDEX_ALTER_STATE_BUILT\x10\x01\x12*\n&VECTOR_INDEX_ALTER_STATE_DEFERRED_FLAT\x10\x02\x12,\n(VECTOR_INDEX_ALTER_STATE_PARAMETERS_ONLY\x10\x03\x32\xa6\x02\n\rSearchService\x12\x37\n\x06Search\x12\x15.hermes.SearchRequest\x1a\x16.hermes.SearchResponse\x12\x46\n\x0bGetDocument\x12\x1a.hermes.GetDocumentRequest\x1a\x1b.hermes.GetDocumentResponse\x12I\n\x0cGetIndexInfo\x12\x1b.hermes.GetIndexInfoRequest\x1a\x1c.hermes.GetIndexInfoResponse\x12I\n\x0cGetTextStats\x12\x1b.hermes.GetTextStatsRequest\x1a\x1c.hermes.GetTextStatsResponse2\x86\x06\n\x0cIndexService\x12\x46\n\x0b\x43reateIndex\x12\x1a.hermes.CreateIndexRequest\x1a\x1b.hermes.CreateIndexResponse\x12P\n\x0eIndexDocuments\x12\x1c.hermes.IndexDocumentRequest\x1a\x1e.hermes.IndexDocumentsResponse(\x01\x12^\n\x13\x42\x61tchIndexDocuments\x12".hermes.BatchIndexDocumentsRequest\x1a#.hermes.BatchIndexDocumentsResponse\x12\x37\n\x06\x43ommit\x12\x15.hermes.CommitRequest\x1a\x16.hermes.CommitResponse\x12\x43\n\nForceMerge\x12\x19.hermes.ForceMergeRequest\x1a\x1a.hermes.ForceMergeResponse\x12:\n\x07Reorder\x12\x16.hermes.ReorderRequest\x1a\x17.hermes.ReorderResponse\x12\x46\n\x0b\x44\x65leteIndex\x12\x1a.hermes.DeleteIndexRequest\x1a\x1b.hermes.DeleteIndexResponse\x12\x46\n\x0bListIndexes\x12\x1a.hermes.ListIndexesRequest\x1a\x1b.hermes.ListIndexesResponse\x12[\n\x12RetrainVectorIndex\x12!.hermes.RetrainVectorIndexRequest\x1a".hermes.RetrainVectorIndexResponse\x12U\n\x10\x41lterVectorIndex\x12\x1f.hermes.AlterVectorIndexRequest\x1a .hermes.AlterVectorIndexResponseb\x06proto3'
23
+ )
24
+
25
+ _globals = globals()
26
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
27
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, "hermes_pb2", _globals)
28
+ if not _descriptor._USE_C_DESCRIPTORS:
29
+ DESCRIPTOR._loaded_options = None
30
+ _globals["_L1RANKING_MISSINGVALUESENTRY"]._loaded_options = None
31
+ _globals["_L1RANKING_MISSINGVALUESENTRY"]._serialized_options = b"8\001"
32
+ _globals["_SEARCHHIT_FIELDSENTRY"]._loaded_options = None
33
+ _globals["_SEARCHHIT_FIELDSENTRY"]._serialized_options = b"8\001"
34
+ _globals["_CANDIDATESCORES_DOCUMENTENTRY"]._loaded_options = None
35
+ _globals["_CANDIDATESCORES_DOCUMENTENTRY"]._serialized_options = b"8\001"
36
+ _globals["_PASSAGESCORES_SCORESENTRY"]._loaded_options = None
37
+ _globals["_PASSAGESCORES_SCORESENTRY"]._serialized_options = b"8\001"
38
+ _globals["_GETDOCUMENTRESPONSE_FIELDSENTRY"]._loaded_options = None
39
+ _globals["_GETDOCUMENTRESPONSE_FIELDSENTRY"]._serialized_options = b"8\001"
40
+ _globals["_FUSIONMETHOD"]._serialized_start = 8843
41
+ _globals["_FUSIONMETHOD"]._serialized_end = 8932
42
+ _globals["_SCORESCOPE"]._serialized_start = 8934
43
+ _globals["_SCORESCOPE"]._serialized_end = 9024
44
+ _globals["_MULTIVALUECOMBINER"]._serialized_start = 9027
45
+ _globals["_MULTIVALUECOMBINER"]._serialized_end = 9156
46
+ _globals["_VECTORINDEXALTERSTATE"]._serialized_start = 9159
47
+ _globals["_VECTORINDEXALTERSTATE"]._serialized_end = 9350
48
+ _globals["_QUERY"]._serialized_start = 25
49
+ _globals["_QUERY"]._serialized_end = 543
50
+ _globals["_WEIGHTEDQUERY"]._serialized_start = 546
51
+ _globals["_WEIGHTEDQUERY"]._serialized_end = 676
52
+ _globals["_FUSIONQUERY"]._serialized_start = 679
53
+ _globals["_FUSIONQUERY"]._serialized_end = 888
54
+ _globals["_L1RANKING"]._serialized_start = 891
55
+ _globals["_L1RANKING"]._serialized_end = 1134
56
+ _globals["_L1RANKING_MISSINGVALUESENTRY"]._serialized_start = 1006
57
+ _globals["_L1RANKING_MISSINGVALUESENTRY"]._serialized_end = 1058
58
+ _globals["_SCOREEXPORT"]._serialized_start = 1136
59
+ _globals["_SCOREEXPORT"]._serialized_end = 1202
60
+ _globals["_SPARSEVECTORQUERY"]._serialized_start = 1205
61
+ _globals["_SPARSEVECTORQUERY"]._serialized_end = 1536
62
+ _globals["_DENSEVECTORQUERY"]._serialized_start = 1539
63
+ _globals["_DENSEVECTORQUERY"]._serialized_end = 1728
64
+ _globals["_BINARYDENSEVECTORQUERY"]._serialized_start = 1731
65
+ _globals["_BINARYDENSEVECTORQUERY"]._serialized_end = 1910
66
+ _globals["_TERMQUERY"]._serialized_start = 1912
67
+ _globals["_TERMQUERY"]._serialized_end = 1976
68
+ _globals["_BOOLEANQUERY"]._serialized_start = 1978
69
+ _globals["_BOOLEANQUERY"]._serialized_end = 2085
70
+ _globals["_BOOSTQUERY"]._serialized_start = 2087
71
+ _globals["_BOOSTQUERY"]._serialized_end = 2144
72
+ _globals["_ALLQUERY"]._serialized_start = 2146
73
+ _globals["_ALLQUERY"]._serialized_end = 2156
74
+ _globals["_RANGEQUERY"]._serialized_start = 2159
75
+ _globals["_RANGEQUERY"]._serialized_end = 2390
76
+ _globals["_MATCHQUERY"]._serialized_start = 2393
77
+ _globals["_MATCHQUERY"]._serialized_end = 2550
78
+ _globals["_PHRASEQUERY"]._serialized_start = 2552
79
+ _globals["_PHRASEQUERY"]._serialized_end = 2632
80
+ _globals["_PREFIXQUERY"]._serialized_start = 2634
81
+ _globals["_PREFIXQUERY"]._serialized_end = 2678
82
+ _globals["_RERANKER"]._serialized_start = 2681
83
+ _globals["_RERANKER"]._serialized_end = 2909
84
+ _globals["_SEARCHREQUEST"]._serialized_start = 2912
85
+ _globals["_SEARCHREQUEST"]._serialized_end = 3275
86
+ _globals["_GETTEXTSTATSREQUEST"]._serialized_start = 3277
87
+ _globals["_GETTEXTSTATSREQUEST"]._serialized_end = 3348
88
+ _globals["_GETTEXTSTATSRESPONSE"]._serialized_start = 3350
89
+ _globals["_GETTEXTSTATSRESPONSE"]._serialized_end = 3406
90
+ _globals["_TEXTSTATS"]._serialized_start = 3408
91
+ _globals["_TEXTSTATS"]._serialized_end = 3479
92
+ _globals["_TEXTFIELDSTATS"]._serialized_start = 3481
93
+ _globals["_TEXTFIELDSTATS"]._serialized_end = 3586
94
+ _globals["_TERMDOCFREQ"]._serialized_start = 3588
95
+ _globals["_TERMDOCFREQ"]._serialized_end = 3633
96
+ _globals["_DOCADDRESS"]._serialized_start = 3635
97
+ _globals["_DOCADDRESS"]._serialized_end = 3683
98
+ _globals["_SEARCHHIT"]._serialized_start = 3686
99
+ _globals["_SEARCHHIT"]._serialized_end = 4054
100
+ _globals["_SEARCHHIT_FIELDSENTRY"]._serialized_start = 3971
101
+ _globals["_SEARCHHIT_FIELDSENTRY"]._serialized_end = 4040
102
+ _globals["_RRFCONTRIBUTION"]._serialized_start = 4056
103
+ _globals["_RRFCONTRIBUTION"]._serialized_end = 4177
104
+ _globals["_CANDIDATESCORES"]._serialized_start = 4180
105
+ _globals["_CANDIDATESCORES"]._serialized_end = 4369
106
+ _globals["_CANDIDATESCORES_DOCUMENTENTRY"]._serialized_start = 4322
107
+ _globals["_CANDIDATESCORES_DOCUMENTENTRY"]._serialized_end = 4369
108
+ _globals["_PASSAGESCORES"]._serialized_start = 4372
109
+ _globals["_PASSAGESCORES"]._serialized_end = 4538
110
+ _globals["_PASSAGESCORES_SCORESENTRY"]._serialized_start = 4480
111
+ _globals["_PASSAGESCORES_SCORESENTRY"]._serialized_end = 4525
112
+ _globals["_FIELDVALUELIST"]._serialized_start = 4540
113
+ _globals["_FIELDVALUELIST"]._serialized_end = 4592
114
+ _globals["_ORDINALSCORE"]._serialized_start = 4594
115
+ _globals["_ORDINALSCORE"]._serialized_end = 4640
116
+ _globals["_FIELDVALUE"]._serialized_start = 4643
117
+ _globals["_FIELDVALUE"]._serialized_end = 4893
118
+ _globals["_SPARSEVECTOR"]._serialized_start = 4895
119
+ _globals["_SPARSEVECTOR"]._serialized_end = 4942
120
+ _globals["_DENSEVECTOR"]._serialized_start = 4944
121
+ _globals["_DENSEVECTOR"]._serialized_end = 4973
122
+ _globals["_SEARCHRESPONSE"]._serialized_start = 4976
123
+ _globals["_SEARCHRESPONSE"]._serialized_end = 5237
124
+ _globals["_SEARCHTRACE"]._serialized_start = 5239
125
+ _globals["_SEARCHTRACE"]._serialized_end = 5294
126
+ _globals["_SHARDSEARCHTRACE"]._serialized_start = 5297
127
+ _globals["_SHARDSEARCHTRACE"]._serialized_end = 5528
128
+ _globals["_QUERYTRACE"]._serialized_start = 5531
129
+ _globals["_QUERYTRACE"]._serialized_end = 5759
130
+ _globals["_FUSIONCANDIDATELIST"]._serialized_start = 5761
131
+ _globals["_FUSIONCANDIDATELIST"]._serialized_end = 5848
132
+ _globals["_FUSIONCANDIDATE"]._serialized_start = 5850
133
+ _globals["_FUSIONCANDIDATE"]._serialized_end = 5965
134
+ _globals["_SEARCHTIMINGS"]._serialized_start = 5967
135
+ _globals["_SEARCHTIMINGS"]._serialized_end = 6085
136
+ _globals["_GETDOCUMENTREQUEST"]._serialized_start = 6087
137
+ _globals["_GETDOCUMENTREQUEST"]._serialized_end = 6164
138
+ _globals["_GETDOCUMENTRESPONSE"]._serialized_start = 6167
139
+ _globals["_GETDOCUMENTRESPONSE"]._serialized_end = 6316
140
+ _globals["_GETDOCUMENTRESPONSE_FIELDSENTRY"]._serialized_start = 3971
141
+ _globals["_GETDOCUMENTRESPONSE_FIELDSENTRY"]._serialized_end = 4040
142
+ _globals["_GETINDEXINFOREQUEST"]._serialized_start = 6318
143
+ _globals["_GETINDEXINFOREQUEST"]._serialized_end = 6359
144
+ _globals["_GETINDEXINFORESPONSE"]._serialized_start = 6362
145
+ _globals["_GETINDEXINFORESPONSE"]._serialized_end = 6667
146
+ _globals["_TEXTFIELDINFO"]._serialized_start = 6669
147
+ _globals["_TEXTFIELDINFO"]._serialized_end = 6790
148
+ _globals["_VECTORFIELDSTATS"]._serialized_start = 6793
149
+ _globals["_VECTORFIELDSTATS"]._serialized_end = 6924
150
+ _globals["_MEMORYSTATS"]._serialized_start = 6927
151
+ _globals["_MEMORYSTATS"]._serialized_end = 7067
152
+ _globals["_INDEXINGBUFFERSTATS"]._serialized_start = 7070
153
+ _globals["_INDEXINGBUFFERSTATS"]._serialized_end = 7293
154
+ _globals["_SEGMENTREADERSTATS"]._serialized_start = 7296
155
+ _globals["_SEGMENTREADERSTATS"]._serialized_end = 7479
156
+ _globals["_CREATEINDEXREQUEST"]._serialized_start = 7481
157
+ _globals["_CREATEINDEXREQUEST"]._serialized_end = 7537
158
+ _globals["_CREATEINDEXRESPONSE"]._serialized_start = 7539
159
+ _globals["_CREATEINDEXRESPONSE"]._serialized_end = 7577
160
+ _globals["_FIELDENTRY"]._serialized_start = 7579
161
+ _globals["_FIELDENTRY"]._serialized_end = 7640
162
+ _globals["_NAMEDDOCUMENT"]._serialized_start = 7642
163
+ _globals["_NAMEDDOCUMENT"]._serialized_end = 7693
164
+ _globals["_BATCHINDEXDOCUMENTSREQUEST"]._serialized_start = 7695
165
+ _globals["_BATCHINDEXDOCUMENTSREQUEST"]._serialized_end = 7785
166
+ _globals["_BATCHINDEXDOCUMENTSRESPONSE"]._serialized_start = 7787
167
+ _globals["_BATCHINDEXDOCUMENTSRESPONSE"]._serialized_end = 7899
168
+ _globals["_DOCUMENTERROR"]._serialized_start = 7901
169
+ _globals["_DOCUMENTERROR"]._serialized_end = 7946
170
+ _globals["_INDEXDOCUMENTREQUEST"]._serialized_start = 7948
171
+ _globals["_INDEXDOCUMENTREQUEST"]._serialized_end = 8026
172
+ _globals["_INDEXDOCUMENTSRESPONSE"]._serialized_start = 8028
173
+ _globals["_INDEXDOCUMENTSRESPONSE"]._serialized_end = 8114
174
+ _globals["_COMMITREQUEST"]._serialized_start = 8116
175
+ _globals["_COMMITREQUEST"]._serialized_end = 8151
176
+ _globals["_COMMITRESPONSE"]._serialized_start = 8153
177
+ _globals["_COMMITRESPONSE"]._serialized_end = 8204
178
+ _globals["_FORCEMERGEREQUEST"]._serialized_start = 8206
179
+ _globals["_FORCEMERGEREQUEST"]._serialized_end = 8245
180
+ _globals["_FORCEMERGERESPONSE"]._serialized_start = 8247
181
+ _globals["_FORCEMERGERESPONSE"]._serialized_end = 8306
182
+ _globals["_DELETEINDEXREQUEST"]._serialized_start = 8308
183
+ _globals["_DELETEINDEXREQUEST"]._serialized_end = 8348
184
+ _globals["_DELETEINDEXRESPONSE"]._serialized_start = 8350
185
+ _globals["_DELETEINDEXRESPONSE"]._serialized_end = 8388
186
+ _globals["_LISTINDEXESREQUEST"]._serialized_start = 8390
187
+ _globals["_LISTINDEXESREQUEST"]._serialized_end = 8410
188
+ _globals["_LISTINDEXESRESPONSE"]._serialized_start = 8412
189
+ _globals["_LISTINDEXESRESPONSE"]._serialized_end = 8454
190
+ _globals["_RETRAINVECTORINDEXREQUEST"]._serialized_start = 8456
191
+ _globals["_RETRAINVECTORINDEXREQUEST"]._serialized_end = 8503
192
+ _globals["_RETRAINVECTORINDEXRESPONSE"]._serialized_start = 8505
193
+ _globals["_RETRAINVECTORINDEXRESPONSE"]._serialized_end = 8550
194
+ _globals["_ALTERVECTORINDEXREQUEST"]._serialized_start = 8552
195
+ _globals["_ALTERVECTORINDEXREQUEST"]._serialized_end = 8639
196
+ _globals["_ALTERVECTORINDEXRESPONSE"]._serialized_start = 8641
197
+ _globals["_ALTERVECTORINDEXRESPONSE"]._serialized_end = 8745
198
+ _globals["_REORDERREQUEST"]._serialized_start = 8747
199
+ _globals["_REORDERREQUEST"]._serialized_end = 8783
200
+ _globals["_REORDERRESPONSE"]._serialized_start = 8785
201
+ _globals["_REORDERRESPONSE"]._serialized_end = 8841
202
+ _globals["_SEARCHSERVICE"]._serialized_start = 9353
203
+ _globals["_SEARCHSERVICE"]._serialized_end = 9647
204
+ _globals["_INDEXSERVICE"]._serialized_start = 9650
205
+ _globals["_INDEXSERVICE"]._serialized_end = 10424
206
+ # @@protoc_insertion_point(module_scope)
@@ -171,6 +171,15 @@ class CandidateScores:
171
171
  scored_passages: int
172
172
 
173
173
 
174
+ @dataclass
175
+ class RrfContribution:
176
+ query_index: int
177
+ query_name: str
178
+ rank: int
179
+ score: float
180
+ ordinal: int | None = None
181
+
182
+
174
183
  @dataclass
175
184
  class SearchHit:
176
185
  """A single search result."""
@@ -180,6 +189,8 @@ class SearchHit:
180
189
  fields: dict[str, Any] = field(default_factory=dict)
181
190
  ordinal_scores: list[OrdinalScore] = field(default_factory=list)
182
191
  candidate_scores: CandidateScores | None = None
192
+ rrf_score: float | None = None
193
+ rrf_contributions: list[RrfContribution] = field(default_factory=list)
183
194
 
184
195
 
185
196
  @dataclass
@@ -206,6 +217,35 @@ class FusionCandidateList:
206
217
  candidates: list[FusionCandidate] = field(default_factory=list)
207
218
 
208
219
 
220
+ @dataclass
221
+ class QueryTrace:
222
+ query_index: int
223
+ query_name: str
224
+ query: dict[str, Any]
225
+ scope: int
226
+ score_only: bool
227
+ candidate_depth: int
228
+ total_seen: int
229
+ candidates: list[FusionCandidate] = field(default_factory=list)
230
+
231
+
232
+ @dataclass
233
+ class ShardSearchTrace:
234
+ shard_id: str
235
+ backend_id: str
236
+ index_name: str
237
+ queries: list[QueryTrace]
238
+ selected: list[FusionCandidate]
239
+ ranking_method: str
240
+ truncated: bool
241
+ filters: list[dict[str, Any]] = field(default_factory=list)
242
+
243
+
244
+ @dataclass
245
+ class SearchTrace:
246
+ shards: list[ShardSearchTrace] = field(default_factory=list)
247
+
248
+
209
249
  @dataclass
210
250
  class SearchResponse:
211
251
  """Search response with hits and metadata."""
@@ -217,6 +257,7 @@ class SearchResponse:
217
257
  ranking_method: str = ""
218
258
  truncated: bool = False
219
259
  fusion_candidates: list[FusionCandidateList] = field(default_factory=list)
260
+ trace: SearchTrace | None = None
220
261
 
221
262
 
222
263
  @dataclass
@@ -1,208 +0,0 @@
1
- # Generated by the protocol buffer compiler. DO NOT EDIT!
2
- # NO CHECKED-IN PROTOBUF GENCODE
3
- # source: hermes.proto
4
- # Protobuf Python Version: 6.31.1
5
- """Generated protocol buffer code."""
6
-
7
- from google.protobuf import descriptor as _descriptor
8
- from google.protobuf import descriptor_pool as _descriptor_pool
9
- from google.protobuf import runtime_version as _runtime_version
10
- from google.protobuf import symbol_database as _symbol_database
11
- from google.protobuf.internal import builder as _builder
12
-
13
- _runtime_version.ValidateProtobufRuntimeVersion(
14
- _runtime_version.Domain.PUBLIC, 6, 31, 1, "", "hermes.proto"
15
- )
16
- # @@protoc_insertion_point(imports)
17
-
18
- _sym_db = _symbol_database.Default()
19
-
20
-
21
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(
22
- b'\n\x0chermes.proto\x12\x06hermes"\x86\x04\n\x05Query\x12!\n\x04term\x18\x01 \x01(\x0b\x32\x11.hermes.TermQueryH\x00\x12\'\n\x07\x62oolean\x18\x02 \x01(\x0b\x32\x14.hermes.BooleanQueryH\x00\x12#\n\x05\x62oost\x18\x03 \x01(\x0b\x32\x12.hermes.BoostQueryH\x00\x12\x1f\n\x03\x61ll\x18\x04 \x01(\x0b\x32\x10.hermes.AllQueryH\x00\x12\x32\n\rsparse_vector\x18\x05 \x01(\x0b\x32\x19.hermes.SparseVectorQueryH\x00\x12\x30\n\x0c\x64\x65nse_vector\x18\x06 \x01(\x0b\x32\x18.hermes.DenseVectorQueryH\x00\x12#\n\x05match\x18\x07 \x01(\x0b\x32\x12.hermes.MatchQueryH\x00\x12#\n\x05range\x18\x08 \x01(\x0b\x32\x12.hermes.RangeQueryH\x00\x12%\n\x06prefix\x18\t \x01(\x0b\x32\x13.hermes.PrefixQueryH\x00\x12=\n\x13\x62inary_dense_vector\x18\n \x01(\x0b\x32\x1e.hermes.BinaryDenseVectorQueryH\x00\x12%\n\x06\x66usion\x18\x0b \x01(\x0b\x32\x13.hermes.FusionQueryH\x00\x12%\n\x06phrase\x18\x0c \x01(\x0b\x32\x13.hermes.PhraseQueryH\x00\x42\x07\n\x05query"\x82\x01\n\rWeightedQuery\x12\x1c\n\x05query\x18\x01 \x01(\x0b\x32\r.hermes.Query\x12\x0e\n\x06weight\x18\x02 \x01(\x02\x12\x0c\n\x04name\x18\x03 \x01(\t\x12!\n\x05scope\x18\x04 \x01(\x0e\x32\x12.hermes.ScoreScope\x12\x12\n\nscore_only\x18\x05 \x01(\x08"\xd1\x01\n\x0b\x46usionQuery\x12&\n\x07queries\x18\x01 \x03(\x0b\x32\x15.hermes.WeightedQuery\x12$\n\x06method\x18\x02 \x01(\x0e\x32\x14.hermes.FusionMethod\x12\r\n\x05rrf_k\x18\x03 \x01(\x02\x12,\n\x08\x63ombiner\x18\x05 \x01(\x0e\x32\x1a.hermes.MultiValueCombiner\x12\x1e\n\x07\x66ilters\x18\x06 \x03(\x0b\x32\r.hermes.Query\x12\x17\n\x0f\x63\x61ndidate_depth\x18\x07 \x01(\r"V\n\x10\x46\x65\x61tureTransform\x12\x14\n\x0csigned_log1p\x18\x01 \x01(\x08\x12\x12\n\x05scale\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x0e\n\x06offset\x18\x03 \x01(\x01\x42\x08\n\x06_scale"\x96\x03\n\tL1Ranking\x12/\n\x07weights\x18\x01 \x03(\x0b\x32\x1e.hermes.L1Ranking.WeightsEntry\x12\x0c\n\x04\x62ias\x18\x02 \x01(\x01\x12\x35\n\ntransforms\x18\x03 \x03(\x0b\x32!.hermes.L1Ranking.TransformsEntry\x12\x15\n\x08\x62\x61\x63kfill\x18\x04 \x01(\x08H\x00\x88\x01\x01\x12<\n\x0emissing_values\x18\x05 \x03(\x0b\x32$.hermes.L1Ranking.MissingValuesEntry\x1a.\n\x0cWeightsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\x1aK\n\x0fTransformsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\'\n\x05value\x18\x02 \x01(\x0b\x32\x18.hermes.FeatureTransform:\x02\x38\x01\x1a\x34\n\x12MissingValuesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x01:\x02\x38\x01\x42\x0b\n\t_backfill"B\n\x0bScoreExport\x12\x1d\n\x15passages_per_document\x18\x01 \x01(\r\x12\x14\n\x0c\x61ll_passages\x18\x02 \x01(\x08"\xcb\x02\n\x11SparseVectorQuery\x12\r\n\x05\x66ield\x18\x01 \x01(\t\x12\x0f\n\x07indices\x18\x02 \x03(\r\x12\x0e\n\x06values\x18\x03 \x03(\x02\x12\x0c\n\x04text\x18\x04 \x01(\t\x12,\n\x08\x63ombiner\x18\x05 \x01(\x0e\x32\x1a.hermes.MultiValueCombiner\x12\x13\n\x0bheap_factor\x18\x06 \x01(\x02\x12\x1c\n\x14\x63ombiner_temperature\x18\x07 \x01(\x02\x12\x16\n\x0e\x63ombiner_top_k\x18\x08 \x01(\r\x12\x16\n\x0e\x63ombiner_decay\x18\t \x01(\x02\x12\x18\n\x10weight_threshold\x18\n \x01(\x02\x12\x16\n\x0emax_query_dims\x18\x0b \x01(\r\x12\x0f\n\x07pruning\x18\x0c \x01(\x02\x12\x16\n\tlsp_gamma\x18\r \x01(\rH\x00\x88\x01\x01\x42\x0c\n\n_lsp_gamma"\xbd\x01\n\x10\x44\x65nseVectorQuery\x12\r\n\x05\x66ield\x18\x01 \x01(\t\x12\x0e\n\x06vector\x18\x02 \x03(\x02\x12\x0e\n\x06nprobe\x18\x03 \x01(\r\x12,\n\x08\x63ombiner\x18\x05 \x01(\x0e\x32\x1a.hermes.MultiValueCombiner\x12\x1c\n\x14\x63ombiner_temperature\x18\x06 \x01(\x02\x12\x16\n\x0e\x63ombiner_top_k\x18\x07 \x01(\r\x12\x16\n\x0e\x63ombiner_decay\x18\x08 \x01(\x02"\xb3\x01\n\x16\x42inaryDenseVectorQuery\x12\r\n\x05\x66ield\x18\x01 \x01(\t\x12\x0e\n\x06vector\x18\x02 \x01(\x0c\x12,\n\x08\x63ombiner\x18\x03 \x01(\x0e\x32\x1a.hermes.MultiValueCombiner\x12\x1c\n\x14\x63ombiner_temperature\x18\x04 \x01(\x02\x12\x16\n\x0e\x63ombiner_top_k\x18\x05 \x01(\r\x12\x16\n\x0e\x63ombiner_decay\x18\x06 \x01(\x02"@\n\tTermQuery\x12\r\n\x05\x66ield\x18\x01 \x01(\t\x12\x0c\n\x04term\x18\x02 \x01(\t\x12\x16\n\x0etokenizer_hint\x18\x03 \x01(\t"k\n\x0c\x42ooleanQuery\x12\x1b\n\x04must\x18\x01 \x03(\x0b\x32\r.hermes.Query\x12\x1d\n\x06should\x18\x02 \x03(\x0b\x32\r.hermes.Query\x12\x1f\n\x08must_not\x18\x03 \x03(\x0b\x32\r.hermes.Query"9\n\nBoostQuery\x12\x1c\n\x05query\x18\x01 \x01(\x0b\x32\r.hermes.Query\x12\r\n\x05\x62oost\x18\x02 \x01(\x02"\n\n\x08\x41llQuery"\xe7\x01\n\nRangeQuery\x12\r\n\x05\x66ield\x18\x01 \x01(\t\x12\x14\n\x07min_u64\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x14\n\x07max_u64\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x14\n\x07min_i64\x18\x04 \x01(\x03H\x02\x88\x01\x01\x12\x14\n\x07max_i64\x18\x05 \x01(\x03H\x03\x88\x01\x01\x12\x14\n\x07min_f64\x18\x06 \x01(\x01H\x04\x88\x01\x01\x12\x14\n\x07max_f64\x18\x07 \x01(\x01H\x05\x88\x01\x01\x42\n\n\x08_min_u64B\n\n\x08_max_u64B\n\n\x08_min_i64B\n\n\x08_max_i64B\n\n\x08_min_f64B\n\n\x08_max_f64"\x9d\x01\n\nMatchQuery\x12\r\n\x05\x66ield\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x16\n\x0etokenizer_hint\x18\x03 \x01(\t\x12\x18\n\x10proximity_weight\x18\x04 \x01(\x02\x12\x18\n\x10proximity_window\x18\x05 \x01(\r\x12\x13\n\x0bheap_factor\x18\x06 \x01(\x02\x12\x11\n\tmax_terms\x18\x07 \x01(\r"P\n\x0bPhraseQuery\x12\r\n\x05\x66ield\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x0c\n\x04slop\x18\x03 \x01(\r\x12\x16\n\x0etokenizer_hint\x18\x04 \x01(\t",\n\x0bPrefixQuery\x12\r\n\x05\x66ield\x18\x01 \x01(\t\x12\x0e\n\x06prefix\x18\x02 \x01(\t"\xe4\x01\n\x08Reranker\x12\r\n\x05\x66ield\x18\x01 \x01(\t\x12\x0e\n\x06vector\x18\x02 \x03(\x02\x12,\n\x08\x63ombiner\x18\x04 \x01(\x0e\x32\x1a.hermes.MultiValueCombiner\x12\x1c\n\x14\x63ombiner_temperature\x18\x05 \x01(\x02\x12\x16\n\x0e\x63ombiner_top_k\x18\x06 \x01(\r\x12\x16\n\x0e\x63ombiner_decay\x18\x07 \x01(\x02\x12\x17\n\x0fmatryoshka_dims\x18\x08 \x01(\r\x12\x15\n\rbinary_vector\x18\t \x01(\x0c\x12\r\n\x05rrf_k\x18\n \x01(\x02"\xbe\x02\n\rSearchRequest\x12\x12\n\nindex_name\x18\x01 \x01(\t\x12\x1c\n\x05query\x18\x02 \x01(\x0b\x32\r.hermes.Query\x12\r\n\x05limit\x18\x03 \x01(\r\x12\x0e\n\x06offset\x18\x04 \x01(\r\x12\x16\n\x0e\x66ields_to_load\x18\x05 \x03(\t\x12"\n\x08reranker\x18\x06 \x01(\x0b\x32\x10.hermes.Reranker\x12\x17\n\x0f\x63\x61ndidate_limit\x18\x07 \x01(\r\x12\x16\n\x0etime_budget_ms\x18\x08 \x01(\x04\x12%\n\ntext_stats\x18\t \x01(\x0b\x32\x11.hermes.TextStats\x12\x1d\n\x02l1\x18\n \x01(\x0b\x32\x11.hermes.L1Ranking\x12)\n\x0cscore_export\x18\x0b \x01(\x0b\x32\x13.hermes.ScoreExport"G\n\x13GetTextStatsRequest\x12\x12\n\nindex_name\x18\x01 \x01(\t\x12\x1c\n\x05query\x18\x02 \x01(\x0b\x32\r.hermes.Query"8\n\x14GetTextStatsResponse\x12 \n\x05stats\x18\x01 \x01(\x0b\x32\x11.hermes.TextStats"G\n\tTextStats\x12\x12\n\ntotal_docs\x18\x01 \x01(\x04\x12&\n\x06\x66ields\x18\x02 \x03(\x0b\x32\x16.hermes.TextFieldStats"i\n\x0eTextFieldStats\x12\r\n\x05\x66ield\x18\x01 \x01(\t\x12\x13\n\x0b\x63orpus_size\x18\x02 \x01(\x04\x12\x0f\n\x07\x61vg_len\x18\x03 \x01(\x02\x12"\n\x05terms\x18\x04 \x03(\x0b\x32\x13.hermes.TermDocFreq"-\n\x0bTermDocFreq\x12\x0c\n\x04term\x18\x01 \x01(\x0c\x12\x10\n\x08\x64oc_freq\x18\x02 \x01(\x04"0\n\nDocAddress\x12\x12\n\nsegment_id\x18\x01 \x01(\t\x12\x0e\n\x06\x64oc_id\x18\x02 \x01(\r"\x96\x02\n\tSearchHit\x12#\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0b\x32\x12.hermes.DocAddress\x12\r\n\x05score\x18\x02 \x01(\x02\x12-\n\x06\x66ields\x18\x03 \x03(\x0b\x32\x1d.hermes.SearchHit.FieldsEntry\x12,\n\x0eordinal_scores\x18\x04 \x03(\x0b\x32\x14.hermes.OrdinalScore\x12\x31\n\x10\x63\x61ndidate_scores\x18\x05 \x01(\x0b\x32\x17.hermes.CandidateScores\x1a\x45\n\x0b\x46ieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.hermes.FieldValueList:\x02\x38\x01"\xbd\x01\n\x0f\x43\x61ndidateScores\x12\x37\n\x08\x64ocument\x18\x01 \x03(\x0b\x32%.hermes.CandidateScores.DocumentEntry\x12\'\n\x08passages\x18\x02 \x03(\x0b\x32\x15.hermes.PassageScores\x12\x17\n\x0fscored_passages\x18\x03 \x01(\r\x1a/\n\rDocumentEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01"\xa6\x01\n\rPassageScores\x12\x0f\n\x07ordinal\x18\x01 \x01(\r\x12\x31\n\x06scores\x18\x02 \x03(\x0b\x32!.hermes.PassageScores.ScoresEntry\x12\x15\n\x08l1_score\x18\x03 \x01(\x02H\x00\x88\x01\x01\x1a-\n\x0bScoresEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x42\x0b\n\t_l1_score"4\n\x0e\x46ieldValueList\x12"\n\x06values\x18\x01 \x03(\x0b\x32\x12.hermes.FieldValue".\n\x0cOrdinalScore\x12\x0f\n\x07ordinal\x18\x01 \x01(\r\x12\r\n\x05score\x18\x02 \x01(\x02"\xfa\x01\n\nFieldValue\x12\x0e\n\x04text\x18\x01 \x01(\tH\x00\x12\r\n\x03u64\x18\x02 \x01(\x04H\x00\x12\r\n\x03i64\x18\x03 \x01(\x03H\x00\x12\r\n\x03\x66\x36\x34\x18\x04 \x01(\x01H\x00\x12\x15\n\x0b\x62ytes_value\x18\x05 \x01(\x0cH\x00\x12-\n\rsparse_vector\x18\x06 \x01(\x0b\x32\x14.hermes.SparseVectorH\x00\x12+\n\x0c\x64\x65nse_vector\x18\x07 \x01(\x0b\x32\x13.hermes.DenseVectorH\x00\x12\x14\n\njson_value\x18\x08 \x01(\tH\x00\x12\x1d\n\x13\x62inary_dense_vector\x18\t \x01(\x0cH\x00\x42\x07\n\x05value"/\n\x0cSparseVector\x12\x0f\n\x07indices\x18\x01 \x03(\r\x12\x0e\n\x06values\x18\x02 \x03(\x02"\x1d\n\x0b\x44\x65nseVector\x12\x0e\n\x06values\x18\x01 \x03(\x02"\xe1\x01\n\x0eSearchResponse\x12\x1f\n\x04hits\x18\x01 \x03(\x0b\x32\x11.hermes.SearchHit\x12\x12\n\ntotal_hits\x18\x02 \x01(\x04\x12\x0f\n\x07took_ms\x18\x03 \x01(\x04\x12&\n\x07timings\x18\x04 \x01(\x0b\x32\x15.hermes.SearchTimings\x12\x11\n\ttruncated\x18\x05 \x01(\x08\x12\x16\n\x0eranking_method\x18\x06 \x01(\t\x12\x36\n\x11\x66usion_candidates\x18\x07 \x03(\x0b\x32\x1b.hermes.FusionCandidateList"W\n\x13\x46usionCandidateList\x12\x13\n\x0bquery_index\x18\x01 \x01(\r\x12+\n\ncandidates\x18\x02 \x03(\x0b\x32\x17.hermes.FusionCandidate"s\n\x0f\x46usionCandidate\x12#\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0b\x32\x12.hermes.DocAddress\x12\r\n\x05score\x18\x02 \x01(\x02\x12,\n\x0eordinal_scores\x18\x03 \x03(\x0b\x32\x14.hermes.OrdinalScore"v\n\rSearchTimings\x12\x11\n\tsearch_us\x18\x01 \x01(\x04\x12\x11\n\trerank_us\x18\x02 \x01(\x04\x12\x0f\n\x07load_us\x18\x03 \x01(\x04\x12\x10\n\x08total_us\x18\x04 \x01(\x04\x12\x1c\n\x14\x63\x61ndidate_scoring_us\x18\x05 \x01(\x04"M\n\x12GetDocumentRequest\x12\x12\n\nindex_name\x18\x01 \x01(\t\x12#\n\x07\x61\x64\x64ress\x18\x02 \x01(\x0b\x32\x12.hermes.DocAddress"\x95\x01\n\x13GetDocumentResponse\x12\x37\n\x06\x66ields\x18\x01 \x03(\x0b\x32\'.hermes.GetDocumentResponse.FieldsEntry\x1a\x45\n\x0b\x46ieldsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12%\n\x05value\x18\x02 \x01(\x0b\x32\x16.hermes.FieldValueList:\x02\x38\x01")\n\x13GetIndexInfoRequest\x12\x12\n\nindex_name\x18\x01 \x01(\t"\xb1\x02\n\x14GetIndexInfoResponse\x12\x12\n\nindex_name\x18\x01 \x01(\t\x12\x10\n\x08num_docs\x18\x02 \x01(\r\x12\x14\n\x0cnum_segments\x18\x03 \x01(\r\x12\x0e\n\x06schema\x18\x04 \x01(\t\x12)\n\x0cmemory_stats\x18\x05 \x01(\x0b\x32\x13.hermes.MemoryStats\x12.\n\x0cvector_stats\x18\x06 \x03(\x0b\x32\x18.hermes.VectorFieldStats\x12*\n\x0btext_fields\x18\x07 \x03(\x0b\x32\x15.hermes.TextFieldInfo\x12!\n\x19\x63\x61ndidate_scoring_version\x18\x08 \x01(\r\x12#\n\x1bunprepared_candidate_fields\x18\t \x03(\t"y\n\rTextFieldInfo\x12\r\n\x05\x66ield\x18\x01 \x01(\t\x12\x0f\n\x07lexical\x18\x02 \x01(\x08\x12\x12\n\nhint_field\x18\x03 \x01(\t\x12\x10\n\x08variants\x18\x04 \x01(\x08\x12\x11\n\tpositions\x18\x05 \x01(\x08\x12\x0f\n\x07\x63hunked\x18\x06 \x01(\x08"\x83\x01\n\x10VectorFieldStats\x12\x12\n\nfield_name\x18\x01 \x01(\t\x12\x13\n\x0bvector_type\x18\x02 \x01(\t\x12\x15\n\rtotal_vectors\x18\x03 \x01(\x04\x12\x11\n\tdimension\x18\x04 \x01(\r\x12\x1c\n\x14\x61vg_terms_per_vector\x18\x05 \x01(\x02"\x8c\x01\n\x0bMemoryStats\x12\x13\n\x0btotal_bytes\x18\x01 \x01(\x04\x12\x34\n\x0findexing_buffer\x18\x02 \x01(\x0b\x32\x1b.hermes.IndexingBufferStats\x12\x32\n\x0esegment_reader\x18\x03 \x01(\x0b\x32\x1a.hermes.SegmentReaderStats"\xdf\x01\n\x13IndexingBufferStats\x12\x13\n\x0btotal_bytes\x18\x01 \x01(\x04\x12\x16\n\x0epostings_bytes\x18\x02 \x01(\x04\x12\x1c\n\x14sparse_vectors_bytes\x18\x03 \x01(\x04\x12\x1b\n\x13\x64\x65nse_vectors_bytes\x18\x04 \x01(\x04\x12\x16\n\x0einterner_bytes\x18\x05 \x01(\x04\x12\x1c\n\x14position_index_bytes\x18\x06 \x01(\x04\x12\x14\n\x0cpending_docs\x18\x07 \x01(\r\x12\x14\n\x0cunique_terms\x18\x08 \x01(\r"\xb7\x01\n\x12SegmentReaderStats\x12\x13\n\x0btotal_bytes\x18\x01 \x01(\x04\x12\x1d\n\x15term_dict_cache_bytes\x18\x02 \x01(\x04\x12\x19\n\x11store_cache_bytes\x18\x03 \x01(\x04\x12\x1a\n\x12sparse_index_bytes\x18\x04 \x01(\x04\x12\x19\n\x11\x64\x65nse_index_bytes\x18\x05 \x01(\x04\x12\x1b\n\x13num_segments_loaded\x18\x06 \x01(\r"8\n\x12\x43reateIndexRequest\x12\x12\n\nindex_name\x18\x01 \x01(\t\x12\x0e\n\x06schema\x18\x02 \x01(\t"&\n\x13\x43reateIndexResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08"=\n\nFieldEntry\x12\x0c\n\x04name\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.hermes.FieldValue"3\n\rNamedDocument\x12"\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x12.hermes.FieldEntry"Z\n\x1a\x42\x61tchIndexDocumentsRequest\x12\x12\n\nindex_name\x18\x01 \x01(\t\x12(\n\tdocuments\x18\x02 \x03(\x0b\x32\x15.hermes.NamedDocument"p\n\x1b\x42\x61tchIndexDocumentsResponse\x12\x15\n\rindexed_count\x18\x01 \x01(\r\x12\x13\n\x0b\x65rror_count\x18\x02 \x01(\r\x12%\n\x06\x65rrors\x18\x03 \x03(\x0b\x32\x15.hermes.DocumentError"-\n\rDocumentError\x12\r\n\x05index\x18\x01 \x01(\r\x12\r\n\x05\x65rror\x18\x02 \x01(\t"N\n\x14IndexDocumentRequest\x12\x12\n\nindex_name\x18\x01 \x01(\t\x12"\n\x06\x66ields\x18\x02 \x03(\x0b\x32\x12.hermes.FieldEntry"V\n\x16IndexDocumentsResponse\x12\x15\n\rindexed_count\x18\x01 \x01(\r\x12%\n\x06\x65rrors\x18\x02 \x03(\x0b\x32\x15.hermes.DocumentError"#\n\rCommitRequest\x12\x12\n\nindex_name\x18\x01 \x01(\t"3\n\x0e\x43ommitResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x10\n\x08num_docs\x18\x02 \x01(\r"\'\n\x11\x46orceMergeRequest\x12\x12\n\nindex_name\x18\x01 \x01(\t";\n\x12\x46orceMergeResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x14\n\x0cnum_segments\x18\x02 \x01(\r"(\n\x12\x44\x65leteIndexRequest\x12\x12\n\nindex_name\x18\x01 \x01(\t"&\n\x13\x44\x65leteIndexResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08"\x14\n\x12ListIndexesRequest"*\n\x13ListIndexesResponse\x12\x13\n\x0bindex_names\x18\x01 \x03(\t"/\n\x19RetrainVectorIndexRequest\x12\x12\n\nindex_name\x18\x01 \x01(\t"-\n\x1aRetrainVectorIndexResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08"W\n\x17\x41lterVectorIndexRequest\x12\x12\n\nindex_name\x18\x01 \x01(\t\x12\x12\n\nfield_name\x18\x02 \x01(\t\x12\x14\n\x0c\x66ield_schema\x18\x03 \x01(\t"h\n\x18\x41lterVectorIndexResponse\x12\x1e\n\x16publication_generation\x18\x01 \x01(\x04\x12,\n\x05state\x18\x02 \x01(\x0e\x32\x1d.hermes.VectorIndexAlterState"$\n\x0eReorderRequest\x12\x12\n\nindex_name\x18\x01 \x01(\t"8\n\x0fReorderResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x14\n\x0cnum_segments\x18\x02 \x01(\r*Y\n\x0c\x46usionMethod\x12\x0e\n\nFUSION_RRF\x10\x00\x12"\n\x1e\x46USION_NORMALIZED_WEIGHTED_SUM\x10\x01\x12\x15\n\x11\x46USION_CANDIDATES\x10\x02*Z\n\nScoreScope\x12\x1b\n\x17SCORE_SCOPE_UNSPECIFIED\x10\x00\x12\x18\n\x14SCORE_SCOPE_DOCUMENT\x10\x01\x12\x15\n\x11SCORE_SCOPE_CHUNK\x10\x02*\x81\x01\n\x12MultiValueCombiner\x12\x18\n\x14\x43OMBINER_LOG_SUM_EXP\x10\x00\x12\x10\n\x0c\x43OMBINER_MAX\x10\x01\x12\x10\n\x0c\x43OMBINER_AVG\x10\x02\x12\x10\n\x0c\x43OMBINER_SUM\x10\x03\x12\x1b\n\x17\x43OMBINER_WEIGHTED_TOP_K\x10\x04*\xbf\x01\n\x15VectorIndexAlterState\x12(\n$VECTOR_INDEX_ALTER_STATE_UNSPECIFIED\x10\x00\x12"\n\x1eVECTOR_INDEX_ALTER_STATE_BUILT\x10\x01\x12*\n&VECTOR_INDEX_ALTER_STATE_DEFERRED_FLAT\x10\x02\x12,\n(VECTOR_INDEX_ALTER_STATE_PARAMETERS_ONLY\x10\x03\x32\xa6\x02\n\rSearchService\x12\x37\n\x06Search\x12\x15.hermes.SearchRequest\x1a\x16.hermes.SearchResponse\x12\x46\n\x0bGetDocument\x12\x1a.hermes.GetDocumentRequest\x1a\x1b.hermes.GetDocumentResponse\x12I\n\x0cGetIndexInfo\x12\x1b.hermes.GetIndexInfoRequest\x1a\x1c.hermes.GetIndexInfoResponse\x12I\n\x0cGetTextStats\x12\x1b.hermes.GetTextStatsRequest\x1a\x1c.hermes.GetTextStatsResponse2\x86\x06\n\x0cIndexService\x12\x46\n\x0b\x43reateIndex\x12\x1a.hermes.CreateIndexRequest\x1a\x1b.hermes.CreateIndexResponse\x12P\n\x0eIndexDocuments\x12\x1c.hermes.IndexDocumentRequest\x1a\x1e.hermes.IndexDocumentsResponse(\x01\x12^\n\x13\x42\x61tchIndexDocuments\x12".hermes.BatchIndexDocumentsRequest\x1a#.hermes.BatchIndexDocumentsResponse\x12\x37\n\x06\x43ommit\x12\x15.hermes.CommitRequest\x1a\x16.hermes.CommitResponse\x12\x43\n\nForceMerge\x12\x19.hermes.ForceMergeRequest\x1a\x1a.hermes.ForceMergeResponse\x12:\n\x07Reorder\x12\x16.hermes.ReorderRequest\x1a\x17.hermes.ReorderResponse\x12\x46\n\x0b\x44\x65leteIndex\x12\x1a.hermes.DeleteIndexRequest\x1a\x1b.hermes.DeleteIndexResponse\x12\x46\n\x0bListIndexes\x12\x1a.hermes.ListIndexesRequest\x1a\x1b.hermes.ListIndexesResponse\x12[\n\x12RetrainVectorIndex\x12!.hermes.RetrainVectorIndexRequest\x1a".hermes.RetrainVectorIndexResponse\x12U\n\x10\x41lterVectorIndex\x12\x1f.hermes.AlterVectorIndexRequest\x1a .hermes.AlterVectorIndexResponseb\x06proto3'
23
- )
24
-
25
- _globals = globals()
26
- _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
27
- _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, "hermes_pb2", _globals)
28
- if not _descriptor._USE_C_DESCRIPTORS:
29
- DESCRIPTOR._loaded_options = None
30
- _globals["_L1RANKING_WEIGHTSENTRY"]._loaded_options = None
31
- _globals["_L1RANKING_WEIGHTSENTRY"]._serialized_options = b"8\001"
32
- _globals["_L1RANKING_TRANSFORMSENTRY"]._loaded_options = None
33
- _globals["_L1RANKING_TRANSFORMSENTRY"]._serialized_options = b"8\001"
34
- _globals["_L1RANKING_MISSINGVALUESENTRY"]._loaded_options = None
35
- _globals["_L1RANKING_MISSINGVALUESENTRY"]._serialized_options = b"8\001"
36
- _globals["_SEARCHHIT_FIELDSENTRY"]._loaded_options = None
37
- _globals["_SEARCHHIT_FIELDSENTRY"]._serialized_options = b"8\001"
38
- _globals["_CANDIDATESCORES_DOCUMENTENTRY"]._loaded_options = None
39
- _globals["_CANDIDATESCORES_DOCUMENTENTRY"]._serialized_options = b"8\001"
40
- _globals["_PASSAGESCORES_SCORESENTRY"]._loaded_options = None
41
- _globals["_PASSAGESCORES_SCORESENTRY"]._serialized_options = b"8\001"
42
- _globals["_GETDOCUMENTRESPONSE_FIELDSENTRY"]._loaded_options = None
43
- _globals["_GETDOCUMENTRESPONSE_FIELDSENTRY"]._serialized_options = b"8\001"
44
- _globals["_FUSIONMETHOD"]._serialized_start = 8278
45
- _globals["_FUSIONMETHOD"]._serialized_end = 8367
46
- _globals["_SCORESCOPE"]._serialized_start = 8369
47
- _globals["_SCORESCOPE"]._serialized_end = 8459
48
- _globals["_MULTIVALUECOMBINER"]._serialized_start = 8462
49
- _globals["_MULTIVALUECOMBINER"]._serialized_end = 8591
50
- _globals["_VECTORINDEXALTERSTATE"]._serialized_start = 8594
51
- _globals["_VECTORINDEXALTERSTATE"]._serialized_end = 8785
52
- _globals["_QUERY"]._serialized_start = 25
53
- _globals["_QUERY"]._serialized_end = 543
54
- _globals["_WEIGHTEDQUERY"]._serialized_start = 546
55
- _globals["_WEIGHTEDQUERY"]._serialized_end = 676
56
- _globals["_FUSIONQUERY"]._serialized_start = 679
57
- _globals["_FUSIONQUERY"]._serialized_end = 888
58
- _globals["_FEATURETRANSFORM"]._serialized_start = 890
59
- _globals["_FEATURETRANSFORM"]._serialized_end = 976
60
- _globals["_L1RANKING"]._serialized_start = 979
61
- _globals["_L1RANKING"]._serialized_end = 1385
62
- _globals["_L1RANKING_WEIGHTSENTRY"]._serialized_start = 1195
63
- _globals["_L1RANKING_WEIGHTSENTRY"]._serialized_end = 1241
64
- _globals["_L1RANKING_TRANSFORMSENTRY"]._serialized_start = 1243
65
- _globals["_L1RANKING_TRANSFORMSENTRY"]._serialized_end = 1318
66
- _globals["_L1RANKING_MISSINGVALUESENTRY"]._serialized_start = 1320
67
- _globals["_L1RANKING_MISSINGVALUESENTRY"]._serialized_end = 1372
68
- _globals["_SCOREEXPORT"]._serialized_start = 1387
69
- _globals["_SCOREEXPORT"]._serialized_end = 1453
70
- _globals["_SPARSEVECTORQUERY"]._serialized_start = 1456
71
- _globals["_SPARSEVECTORQUERY"]._serialized_end = 1787
72
- _globals["_DENSEVECTORQUERY"]._serialized_start = 1790
73
- _globals["_DENSEVECTORQUERY"]._serialized_end = 1979
74
- _globals["_BINARYDENSEVECTORQUERY"]._serialized_start = 1982
75
- _globals["_BINARYDENSEVECTORQUERY"]._serialized_end = 2161
76
- _globals["_TERMQUERY"]._serialized_start = 2163
77
- _globals["_TERMQUERY"]._serialized_end = 2227
78
- _globals["_BOOLEANQUERY"]._serialized_start = 2229
79
- _globals["_BOOLEANQUERY"]._serialized_end = 2336
80
- _globals["_BOOSTQUERY"]._serialized_start = 2338
81
- _globals["_BOOSTQUERY"]._serialized_end = 2395
82
- _globals["_ALLQUERY"]._serialized_start = 2397
83
- _globals["_ALLQUERY"]._serialized_end = 2407
84
- _globals["_RANGEQUERY"]._serialized_start = 2410
85
- _globals["_RANGEQUERY"]._serialized_end = 2641
86
- _globals["_MATCHQUERY"]._serialized_start = 2644
87
- _globals["_MATCHQUERY"]._serialized_end = 2801
88
- _globals["_PHRASEQUERY"]._serialized_start = 2803
89
- _globals["_PHRASEQUERY"]._serialized_end = 2883
90
- _globals["_PREFIXQUERY"]._serialized_start = 2885
91
- _globals["_PREFIXQUERY"]._serialized_end = 2929
92
- _globals["_RERANKER"]._serialized_start = 2932
93
- _globals["_RERANKER"]._serialized_end = 3160
94
- _globals["_SEARCHREQUEST"]._serialized_start = 3163
95
- _globals["_SEARCHREQUEST"]._serialized_end = 3481
96
- _globals["_GETTEXTSTATSREQUEST"]._serialized_start = 3483
97
- _globals["_GETTEXTSTATSREQUEST"]._serialized_end = 3554
98
- _globals["_GETTEXTSTATSRESPONSE"]._serialized_start = 3556
99
- _globals["_GETTEXTSTATSRESPONSE"]._serialized_end = 3612
100
- _globals["_TEXTSTATS"]._serialized_start = 3614
101
- _globals["_TEXTSTATS"]._serialized_end = 3685
102
- _globals["_TEXTFIELDSTATS"]._serialized_start = 3687
103
- _globals["_TEXTFIELDSTATS"]._serialized_end = 3792
104
- _globals["_TERMDOCFREQ"]._serialized_start = 3794
105
- _globals["_TERMDOCFREQ"]._serialized_end = 3839
106
- _globals["_DOCADDRESS"]._serialized_start = 3841
107
- _globals["_DOCADDRESS"]._serialized_end = 3889
108
- _globals["_SEARCHHIT"]._serialized_start = 3892
109
- _globals["_SEARCHHIT"]._serialized_end = 4170
110
- _globals["_SEARCHHIT_FIELDSENTRY"]._serialized_start = 4101
111
- _globals["_SEARCHHIT_FIELDSENTRY"]._serialized_end = 4170
112
- _globals["_CANDIDATESCORES"]._serialized_start = 4173
113
- _globals["_CANDIDATESCORES"]._serialized_end = 4362
114
- _globals["_CANDIDATESCORES_DOCUMENTENTRY"]._serialized_start = 4315
115
- _globals["_CANDIDATESCORES_DOCUMENTENTRY"]._serialized_end = 4362
116
- _globals["_PASSAGESCORES"]._serialized_start = 4365
117
- _globals["_PASSAGESCORES"]._serialized_end = 4531
118
- _globals["_PASSAGESCORES_SCORESENTRY"]._serialized_start = 4473
119
- _globals["_PASSAGESCORES_SCORESENTRY"]._serialized_end = 4518
120
- _globals["_FIELDVALUELIST"]._serialized_start = 4533
121
- _globals["_FIELDVALUELIST"]._serialized_end = 4585
122
- _globals["_ORDINALSCORE"]._serialized_start = 4587
123
- _globals["_ORDINALSCORE"]._serialized_end = 4633
124
- _globals["_FIELDVALUE"]._serialized_start = 4636
125
- _globals["_FIELDVALUE"]._serialized_end = 4886
126
- _globals["_SPARSEVECTOR"]._serialized_start = 4888
127
- _globals["_SPARSEVECTOR"]._serialized_end = 4935
128
- _globals["_DENSEVECTOR"]._serialized_start = 4937
129
- _globals["_DENSEVECTOR"]._serialized_end = 4966
130
- _globals["_SEARCHRESPONSE"]._serialized_start = 4969
131
- _globals["_SEARCHRESPONSE"]._serialized_end = 5194
132
- _globals["_FUSIONCANDIDATELIST"]._serialized_start = 5196
133
- _globals["_FUSIONCANDIDATELIST"]._serialized_end = 5283
134
- _globals["_FUSIONCANDIDATE"]._serialized_start = 5285
135
- _globals["_FUSIONCANDIDATE"]._serialized_end = 5400
136
- _globals["_SEARCHTIMINGS"]._serialized_start = 5402
137
- _globals["_SEARCHTIMINGS"]._serialized_end = 5520
138
- _globals["_GETDOCUMENTREQUEST"]._serialized_start = 5522
139
- _globals["_GETDOCUMENTREQUEST"]._serialized_end = 5599
140
- _globals["_GETDOCUMENTRESPONSE"]._serialized_start = 5602
141
- _globals["_GETDOCUMENTRESPONSE"]._serialized_end = 5751
142
- _globals["_GETDOCUMENTRESPONSE_FIELDSENTRY"]._serialized_start = 4101
143
- _globals["_GETDOCUMENTRESPONSE_FIELDSENTRY"]._serialized_end = 4170
144
- _globals["_GETINDEXINFOREQUEST"]._serialized_start = 5753
145
- _globals["_GETINDEXINFOREQUEST"]._serialized_end = 5794
146
- _globals["_GETINDEXINFORESPONSE"]._serialized_start = 5797
147
- _globals["_GETINDEXINFORESPONSE"]._serialized_end = 6102
148
- _globals["_TEXTFIELDINFO"]._serialized_start = 6104
149
- _globals["_TEXTFIELDINFO"]._serialized_end = 6225
150
- _globals["_VECTORFIELDSTATS"]._serialized_start = 6228
151
- _globals["_VECTORFIELDSTATS"]._serialized_end = 6359
152
- _globals["_MEMORYSTATS"]._serialized_start = 6362
153
- _globals["_MEMORYSTATS"]._serialized_end = 6502
154
- _globals["_INDEXINGBUFFERSTATS"]._serialized_start = 6505
155
- _globals["_INDEXINGBUFFERSTATS"]._serialized_end = 6728
156
- _globals["_SEGMENTREADERSTATS"]._serialized_start = 6731
157
- _globals["_SEGMENTREADERSTATS"]._serialized_end = 6914
158
- _globals["_CREATEINDEXREQUEST"]._serialized_start = 6916
159
- _globals["_CREATEINDEXREQUEST"]._serialized_end = 6972
160
- _globals["_CREATEINDEXRESPONSE"]._serialized_start = 6974
161
- _globals["_CREATEINDEXRESPONSE"]._serialized_end = 7012
162
- _globals["_FIELDENTRY"]._serialized_start = 7014
163
- _globals["_FIELDENTRY"]._serialized_end = 7075
164
- _globals["_NAMEDDOCUMENT"]._serialized_start = 7077
165
- _globals["_NAMEDDOCUMENT"]._serialized_end = 7128
166
- _globals["_BATCHINDEXDOCUMENTSREQUEST"]._serialized_start = 7130
167
- _globals["_BATCHINDEXDOCUMENTSREQUEST"]._serialized_end = 7220
168
- _globals["_BATCHINDEXDOCUMENTSRESPONSE"]._serialized_start = 7222
169
- _globals["_BATCHINDEXDOCUMENTSRESPONSE"]._serialized_end = 7334
170
- _globals["_DOCUMENTERROR"]._serialized_start = 7336
171
- _globals["_DOCUMENTERROR"]._serialized_end = 7381
172
- _globals["_INDEXDOCUMENTREQUEST"]._serialized_start = 7383
173
- _globals["_INDEXDOCUMENTREQUEST"]._serialized_end = 7461
174
- _globals["_INDEXDOCUMENTSRESPONSE"]._serialized_start = 7463
175
- _globals["_INDEXDOCUMENTSRESPONSE"]._serialized_end = 7549
176
- _globals["_COMMITREQUEST"]._serialized_start = 7551
177
- _globals["_COMMITREQUEST"]._serialized_end = 7586
178
- _globals["_COMMITRESPONSE"]._serialized_start = 7588
179
- _globals["_COMMITRESPONSE"]._serialized_end = 7639
180
- _globals["_FORCEMERGEREQUEST"]._serialized_start = 7641
181
- _globals["_FORCEMERGEREQUEST"]._serialized_end = 7680
182
- _globals["_FORCEMERGERESPONSE"]._serialized_start = 7682
183
- _globals["_FORCEMERGERESPONSE"]._serialized_end = 7741
184
- _globals["_DELETEINDEXREQUEST"]._serialized_start = 7743
185
- _globals["_DELETEINDEXREQUEST"]._serialized_end = 7783
186
- _globals["_DELETEINDEXRESPONSE"]._serialized_start = 7785
187
- _globals["_DELETEINDEXRESPONSE"]._serialized_end = 7823
188
- _globals["_LISTINDEXESREQUEST"]._serialized_start = 7825
189
- _globals["_LISTINDEXESREQUEST"]._serialized_end = 7845
190
- _globals["_LISTINDEXESRESPONSE"]._serialized_start = 7847
191
- _globals["_LISTINDEXESRESPONSE"]._serialized_end = 7889
192
- _globals["_RETRAINVECTORINDEXREQUEST"]._serialized_start = 7891
193
- _globals["_RETRAINVECTORINDEXREQUEST"]._serialized_end = 7938
194
- _globals["_RETRAINVECTORINDEXRESPONSE"]._serialized_start = 7940
195
- _globals["_RETRAINVECTORINDEXRESPONSE"]._serialized_end = 7985
196
- _globals["_ALTERVECTORINDEXREQUEST"]._serialized_start = 7987
197
- _globals["_ALTERVECTORINDEXREQUEST"]._serialized_end = 8074
198
- _globals["_ALTERVECTORINDEXRESPONSE"]._serialized_start = 8076
199
- _globals["_ALTERVECTORINDEXRESPONSE"]._serialized_end = 8180
200
- _globals["_REORDERREQUEST"]._serialized_start = 8182
201
- _globals["_REORDERREQUEST"]._serialized_end = 8218
202
- _globals["_REORDERRESPONSE"]._serialized_start = 8220
203
- _globals["_REORDERRESPONSE"]._serialized_end = 8276
204
- _globals["_SEARCHSERVICE"]._serialized_start = 8788
205
- _globals["_SEARCHSERVICE"]._serialized_end = 9082
206
- _globals["_INDEXSERVICE"]._serialized_start = 9085
207
- _globals["_INDEXSERVICE"]._serialized_end = 9859
208
- # @@protoc_insertion_point(module_scope)