hermes-client-python 1.8.124__tar.gz → 1.8.127__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.124
3
+ Version: 1.8.127
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
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "hermes-client-python"
7
- version = "1.8.124"
7
+ version = "1.8.127"
8
8
  description = "Async Python client for Hermes search server"
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -8,13 +8,17 @@ from .types import (
8
8
  BinaryDenseVectorQuery,
9
9
  BooleanQuery,
10
10
  BoostQuery,
11
+ CandidateScores,
11
12
  Combiner,
12
13
  DenseVectorQuery,
13
14
  DocAddress,
14
15
  Document,
16
+ FusionCandidate,
17
+ FusionCandidateList,
15
18
  IndexInfo,
16
19
  MatchQuery,
17
20
  OrdinalScore,
21
+ PassageScores,
18
22
  RangeQuery,
19
23
  Reranker,
20
24
  SearchHit,
@@ -32,6 +36,10 @@ __all__ = [
32
36
  "BooleanQuery",
33
37
  "BoostQuery",
34
38
  "Combiner",
39
+ "CandidateScores",
40
+ "FusionCandidate",
41
+ "FusionCandidateList",
42
+ "PassageScores",
35
43
  "DenseVectorQuery",
36
44
  "DocAddress",
37
45
  "Document",
@@ -16,10 +16,14 @@ from grpc import aio
16
16
  from . import hermes_pb2 as pb
17
17
  from . import hermes_pb2_grpc as pb_grpc
18
18
  from .types import (
19
+ CandidateScores,
19
20
  DocAddress,
20
21
  Document,
22
+ FusionCandidate,
23
+ FusionCandidateList,
21
24
  IndexInfo,
22
25
  OrdinalScore,
26
+ PassageScores,
23
27
  SearchHit,
24
28
  SearchResponse,
25
29
  SearchTimings,
@@ -214,6 +218,8 @@ class HermesClient:
214
218
  num_docs=response.num_docs,
215
219
  num_segments=response.num_segments,
216
220
  schema=response.schema,
221
+ candidate_scoring_version=response.candidate_scoring_version,
222
+ unprepared_candidate_fields=list(response.unprepared_candidate_fields),
217
223
  vector_stats=vector_stats,
218
224
  )
219
225
 
@@ -385,6 +391,8 @@ class HermesClient:
385
391
  fields_to_load: list[str] | None = None,
386
392
  reranker: dict[str, Any] | None = None,
387
393
  candidate_limit: int = 0,
394
+ l1: dict[str, Any] | None = None,
395
+ score_export: dict[str, Any] | None = None,
388
396
  timeout: float | None = None,
389
397
  ) -> SearchResponse:
390
398
  """Search for documents.
@@ -473,12 +481,22 @@ class HermesClient:
473
481
  fields_to_load=fields_to_load or [],
474
482
  reranker=pb_reranker,
475
483
  candidate_limit=candidate_limit,
484
+ l1=pb.L1Ranking(**l1) if l1 is not None else None,
485
+ score_export=pb.ScoreExport(**score_export)
486
+ if score_export is not None
487
+ else None,
476
488
  )
477
489
 
478
490
  response = await self._search_stub.Search(
479
491
  request, timeout=self._deadline(timeout)
480
492
  )
481
493
 
494
+ if l1 is not None and response.ranking_method != "linear_v2":
495
+ raise RuntimeError(
496
+ "L1 requires a backend with linear_v2 ranking semantics; "
497
+ f"received {response.ranking_method!r}"
498
+ )
499
+
482
500
  hits = [
483
501
  SearchHit(
484
502
  address=DocAddress(
@@ -487,6 +505,20 @@ class HermesClient:
487
505
  ),
488
506
  score=hit.score,
489
507
  fields={k: _from_field_value_list(v) for k, v in hit.fields.items()},
508
+ candidate_scores=CandidateScores(
509
+ document=dict(hit.candidate_scores.document),
510
+ passages=[
511
+ PassageScores(
512
+ ordinal=row.ordinal,
513
+ scores=dict(row.scores),
514
+ l1_score=row.l1_score if row.HasField("l1_score") else None,
515
+ )
516
+ for row in hit.candidate_scores.passages
517
+ ],
518
+ scored_passages=hit.candidate_scores.scored_passages,
519
+ )
520
+ if hit.HasField("candidate_scores")
521
+ else None,
490
522
  ordinal_scores=[
491
523
  OrdinalScore(ordinal=os.ordinal, score=os.score)
492
524
  for os in hit.ordinal_scores
@@ -503,6 +535,7 @@ class HermesClient:
503
535
  rerank_us=t.rerank_us,
504
536
  load_us=t.load_us,
505
537
  total_us=t.total_us,
538
+ candidate_scoring_us=t.candidate_scoring_us,
506
539
  )
507
540
 
508
541
  return SearchResponse(
@@ -510,6 +543,28 @@ class HermesClient:
510
543
  total_hits=response.total_hits,
511
544
  took_ms=response.took_ms,
512
545
  timings=timings,
546
+ ranking_method=response.ranking_method,
547
+ truncated=response.truncated,
548
+ fusion_candidates=[
549
+ FusionCandidateList(
550
+ query_index=branch.query_index,
551
+ candidates=[
552
+ FusionCandidate(
553
+ address=DocAddress(
554
+ segment_id=hit.address.segment_id,
555
+ doc_id=hit.address.doc_id,
556
+ ),
557
+ score=hit.score,
558
+ ordinal_scores=[
559
+ OrdinalScore(ordinal=score.ordinal, score=score.score)
560
+ for score in hit.ordinal_scores
561
+ ],
562
+ )
563
+ for hit in branch.candidates
564
+ ],
565
+ )
566
+ for branch in response.fusion_candidates
567
+ ],
513
568
  )
514
569
 
515
570
  async def get_document(
@@ -867,22 +922,33 @@ def _build_query(q: dict[str, Any]) -> pb.Query:
867
922
  method = f.get("method", "rrf")
868
923
  if method == "rrf":
869
924
  pb_method = pb.FusionMethod.FUSION_RRF
925
+ elif method == "candidates":
926
+ pb_method = pb.FusionMethod.FUSION_CANDIDATES
870
927
  elif method == "normalized_weighted_sum":
871
928
  pb_method = pb.FusionMethod.FUSION_NORMALIZED_WEIGHTED_SUM
872
929
  else:
873
930
  raise ValueError(
874
931
  f"Unknown fusion method {method!r}: "
875
- "expected 'rrf' or 'normalized_weighted_sum'"
932
+ "expected 'rrf', 'normalized_weighted_sum' or 'candidates'"
876
933
  )
877
934
  return pb.Query(
878
935
  fusion=pb.FusionQuery(
879
936
  queries=[
880
937
  pb.WeightedQuery(
881
938
  query=_build_query(wq["query"]),
882
- weight=wq.get("weight", 1.0),
939
+ weight=wq.get("weight", 0.0 if wq.get("name") else 1.0),
940
+ name=wq.get("name", ""),
941
+ scope={
942
+ None: pb.SCORE_SCOPE_UNSPECIFIED,
943
+ "document": pb.SCORE_SCOPE_DOCUMENT,
944
+ "chunk": pb.SCORE_SCOPE_CHUNK,
945
+ }[wq.get("scope")],
946
+ score_only=wq.get("score_only", False),
883
947
  )
884
948
  for wq in f["queries"]
885
949
  ],
950
+ filters=[_build_query(q) for q in f.get("filters", [])],
951
+ candidate_depth=f.get("candidate_depth", 0),
886
952
  method=pb_method,
887
953
  rrf_k=f.get("rrf_k", 0),
888
954
  # Chunk combiner; unset -> MAX server-side (chunk-level fusion)
@@ -0,0 +1,208 @@
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)
@@ -157,6 +157,20 @@ class OrdinalScore:
157
157
  score: float
158
158
 
159
159
 
160
+ @dataclass
161
+ class PassageScores:
162
+ ordinal: int
163
+ scores: dict[str, float]
164
+ l1_score: float | None = None
165
+
166
+
167
+ @dataclass
168
+ class CandidateScores:
169
+ document: dict[str, float]
170
+ passages: list[PassageScores]
171
+ scored_passages: int
172
+
173
+
160
174
  @dataclass
161
175
  class SearchHit:
162
176
  """A single search result."""
@@ -165,6 +179,7 @@ class SearchHit:
165
179
  score: float
166
180
  fields: dict[str, Any] = field(default_factory=dict)
167
181
  ordinal_scores: list[OrdinalScore] = field(default_factory=list)
182
+ candidate_scores: CandidateScores | None = None
168
183
 
169
184
 
170
185
  @dataclass
@@ -175,6 +190,20 @@ class SearchTimings:
175
190
  rerank_us: int
176
191
  load_us: int
177
192
  total_us: int
193
+ candidate_scoring_us: int = 0
194
+
195
+
196
+ @dataclass
197
+ class FusionCandidate:
198
+ address: DocAddress
199
+ score: float
200
+ ordinal_scores: list[OrdinalScore] = field(default_factory=list)
201
+
202
+
203
+ @dataclass
204
+ class FusionCandidateList:
205
+ query_index: int
206
+ candidates: list[FusionCandidate] = field(default_factory=list)
178
207
 
179
208
 
180
209
  @dataclass
@@ -185,6 +214,9 @@ class SearchResponse:
185
214
  total_hits: int
186
215
  took_ms: int
187
216
  timings: SearchTimings | None = None
217
+ ranking_method: str = ""
218
+ truncated: bool = False
219
+ fusion_candidates: list[FusionCandidateList] = field(default_factory=list)
188
220
 
189
221
 
190
222
  @dataclass
@@ -206,3 +238,5 @@ class IndexInfo:
206
238
  num_segments: int
207
239
  schema: str
208
240
  vector_stats: list[VectorFieldStats] = field(default_factory=list)
241
+ candidate_scoring_version: int = 0
242
+ unprepared_candidate_fields: list[str] = field(default_factory=list)
@@ -1,172 +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"=\n\rWeightedQuery\x12\x1c\n\x05query\x18\x01 \x01(\x0b\x32\r.hermes.Query\x12\x0e\n\x06weight\x18\x02 \x01(\x02"\x98\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"\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"\xf4\x01\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"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"\xe3\x01\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\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"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"\x91\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"X\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"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"\xe9\x01\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"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*B\n\x0c\x46usionMethod\x12\x0e\n\nFUSION_RRF\x10\x00\x12"\n\x1e\x46USION_NORMALIZED_WEIGHTED_SUM\x10\x01*\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["_SEARCHHIT_FIELDSENTRY"]._loaded_options = None
31
- _globals["_SEARCHHIT_FIELDSENTRY"]._serialized_options = b"8\001"
32
- _globals["_GETDOCUMENTRESPONSE_FIELDSENTRY"]._loaded_options = None
33
- _globals["_GETDOCUMENTRESPONSE_FIELDSENTRY"]._serialized_options = b"8\001"
34
- _globals["_FUSIONMETHOD"]._serialized_start = 6712
35
- _globals["_FUSIONMETHOD"]._serialized_end = 6778
36
- _globals["_MULTIVALUECOMBINER"]._serialized_start = 6781
37
- _globals["_MULTIVALUECOMBINER"]._serialized_end = 6910
38
- _globals["_VECTORINDEXALTERSTATE"]._serialized_start = 6913
39
- _globals["_VECTORINDEXALTERSTATE"]._serialized_end = 7104
40
- _globals["_QUERY"]._serialized_start = 25
41
- _globals["_QUERY"]._serialized_end = 543
42
- _globals["_WEIGHTEDQUERY"]._serialized_start = 545
43
- _globals["_WEIGHTEDQUERY"]._serialized_end = 606
44
- _globals["_FUSIONQUERY"]._serialized_start = 609
45
- _globals["_FUSIONQUERY"]._serialized_end = 761
46
- _globals["_SPARSEVECTORQUERY"]._serialized_start = 764
47
- _globals["_SPARSEVECTORQUERY"]._serialized_end = 1095
48
- _globals["_DENSEVECTORQUERY"]._serialized_start = 1098
49
- _globals["_DENSEVECTORQUERY"]._serialized_end = 1287
50
- _globals["_BINARYDENSEVECTORQUERY"]._serialized_start = 1290
51
- _globals["_BINARYDENSEVECTORQUERY"]._serialized_end = 1469
52
- _globals["_TERMQUERY"]._serialized_start = 1471
53
- _globals["_TERMQUERY"]._serialized_end = 1535
54
- _globals["_BOOLEANQUERY"]._serialized_start = 1537
55
- _globals["_BOOLEANQUERY"]._serialized_end = 1644
56
- _globals["_BOOSTQUERY"]._serialized_start = 1646
57
- _globals["_BOOSTQUERY"]._serialized_end = 1703
58
- _globals["_ALLQUERY"]._serialized_start = 1705
59
- _globals["_ALLQUERY"]._serialized_end = 1715
60
- _globals["_RANGEQUERY"]._serialized_start = 1718
61
- _globals["_RANGEQUERY"]._serialized_end = 1949
62
- _globals["_MATCHQUERY"]._serialized_start = 1952
63
- _globals["_MATCHQUERY"]._serialized_end = 2109
64
- _globals["_PHRASEQUERY"]._serialized_start = 2111
65
- _globals["_PHRASEQUERY"]._serialized_end = 2191
66
- _globals["_PREFIXQUERY"]._serialized_start = 2193
67
- _globals["_PREFIXQUERY"]._serialized_end = 2237
68
- _globals["_RERANKER"]._serialized_start = 2240
69
- _globals["_RERANKER"]._serialized_end = 2468
70
- _globals["_SEARCHREQUEST"]._serialized_start = 2471
71
- _globals["_SEARCHREQUEST"]._serialized_end = 2715
72
- _globals["_GETTEXTSTATSREQUEST"]._serialized_start = 2717
73
- _globals["_GETTEXTSTATSREQUEST"]._serialized_end = 2788
74
- _globals["_GETTEXTSTATSRESPONSE"]._serialized_start = 2790
75
- _globals["_GETTEXTSTATSRESPONSE"]._serialized_end = 2846
76
- _globals["_TEXTSTATS"]._serialized_start = 2848
77
- _globals["_TEXTSTATS"]._serialized_end = 2919
78
- _globals["_TEXTFIELDSTATS"]._serialized_start = 2921
79
- _globals["_TEXTFIELDSTATS"]._serialized_end = 3026
80
- _globals["_TERMDOCFREQ"]._serialized_start = 3028
81
- _globals["_TERMDOCFREQ"]._serialized_end = 3073
82
- _globals["_DOCADDRESS"]._serialized_start = 3075
83
- _globals["_DOCADDRESS"]._serialized_end = 3123
84
- _globals["_SEARCHHIT"]._serialized_start = 3126
85
- _globals["_SEARCHHIT"]._serialized_end = 3353
86
- _globals["_SEARCHHIT_FIELDSENTRY"]._serialized_start = 3284
87
- _globals["_SEARCHHIT_FIELDSENTRY"]._serialized_end = 3353
88
- _globals["_FIELDVALUELIST"]._serialized_start = 3355
89
- _globals["_FIELDVALUELIST"]._serialized_end = 3407
90
- _globals["_ORDINALSCORE"]._serialized_start = 3409
91
- _globals["_ORDINALSCORE"]._serialized_end = 3455
92
- _globals["_FIELDVALUE"]._serialized_start = 3458
93
- _globals["_FIELDVALUE"]._serialized_end = 3708
94
- _globals["_SPARSEVECTOR"]._serialized_start = 3710
95
- _globals["_SPARSEVECTOR"]._serialized_end = 3757
96
- _globals["_DENSEVECTOR"]._serialized_start = 3759
97
- _globals["_DENSEVECTOR"]._serialized_end = 3788
98
- _globals["_SEARCHRESPONSE"]._serialized_start = 3791
99
- _globals["_SEARCHRESPONSE"]._serialized_end = 3936
100
- _globals["_SEARCHTIMINGS"]._serialized_start = 3938
101
- _globals["_SEARCHTIMINGS"]._serialized_end = 4026
102
- _globals["_GETDOCUMENTREQUEST"]._serialized_start = 4028
103
- _globals["_GETDOCUMENTREQUEST"]._serialized_end = 4105
104
- _globals["_GETDOCUMENTRESPONSE"]._serialized_start = 4108
105
- _globals["_GETDOCUMENTRESPONSE"]._serialized_end = 4257
106
- _globals["_GETDOCUMENTRESPONSE_FIELDSENTRY"]._serialized_start = 3284
107
- _globals["_GETDOCUMENTRESPONSE_FIELDSENTRY"]._serialized_end = 3353
108
- _globals["_GETINDEXINFOREQUEST"]._serialized_start = 4259
109
- _globals["_GETINDEXINFOREQUEST"]._serialized_end = 4300
110
- _globals["_GETINDEXINFORESPONSE"]._serialized_start = 4303
111
- _globals["_GETINDEXINFORESPONSE"]._serialized_end = 4536
112
- _globals["_TEXTFIELDINFO"]._serialized_start = 4538
113
- _globals["_TEXTFIELDINFO"]._serialized_end = 4659
114
- _globals["_VECTORFIELDSTATS"]._serialized_start = 4662
115
- _globals["_VECTORFIELDSTATS"]._serialized_end = 4793
116
- _globals["_MEMORYSTATS"]._serialized_start = 4796
117
- _globals["_MEMORYSTATS"]._serialized_end = 4936
118
- _globals["_INDEXINGBUFFERSTATS"]._serialized_start = 4939
119
- _globals["_INDEXINGBUFFERSTATS"]._serialized_end = 5162
120
- _globals["_SEGMENTREADERSTATS"]._serialized_start = 5165
121
- _globals["_SEGMENTREADERSTATS"]._serialized_end = 5348
122
- _globals["_CREATEINDEXREQUEST"]._serialized_start = 5350
123
- _globals["_CREATEINDEXREQUEST"]._serialized_end = 5406
124
- _globals["_CREATEINDEXRESPONSE"]._serialized_start = 5408
125
- _globals["_CREATEINDEXRESPONSE"]._serialized_end = 5446
126
- _globals["_FIELDENTRY"]._serialized_start = 5448
127
- _globals["_FIELDENTRY"]._serialized_end = 5509
128
- _globals["_NAMEDDOCUMENT"]._serialized_start = 5511
129
- _globals["_NAMEDDOCUMENT"]._serialized_end = 5562
130
- _globals["_BATCHINDEXDOCUMENTSREQUEST"]._serialized_start = 5564
131
- _globals["_BATCHINDEXDOCUMENTSREQUEST"]._serialized_end = 5654
132
- _globals["_BATCHINDEXDOCUMENTSRESPONSE"]._serialized_start = 5656
133
- _globals["_BATCHINDEXDOCUMENTSRESPONSE"]._serialized_end = 5768
134
- _globals["_DOCUMENTERROR"]._serialized_start = 5770
135
- _globals["_DOCUMENTERROR"]._serialized_end = 5815
136
- _globals["_INDEXDOCUMENTREQUEST"]._serialized_start = 5817
137
- _globals["_INDEXDOCUMENTREQUEST"]._serialized_end = 5895
138
- _globals["_INDEXDOCUMENTSRESPONSE"]._serialized_start = 5897
139
- _globals["_INDEXDOCUMENTSRESPONSE"]._serialized_end = 5983
140
- _globals["_COMMITREQUEST"]._serialized_start = 5985
141
- _globals["_COMMITREQUEST"]._serialized_end = 6020
142
- _globals["_COMMITRESPONSE"]._serialized_start = 6022
143
- _globals["_COMMITRESPONSE"]._serialized_end = 6073
144
- _globals["_FORCEMERGEREQUEST"]._serialized_start = 6075
145
- _globals["_FORCEMERGEREQUEST"]._serialized_end = 6114
146
- _globals["_FORCEMERGERESPONSE"]._serialized_start = 6116
147
- _globals["_FORCEMERGERESPONSE"]._serialized_end = 6175
148
- _globals["_DELETEINDEXREQUEST"]._serialized_start = 6177
149
- _globals["_DELETEINDEXREQUEST"]._serialized_end = 6217
150
- _globals["_DELETEINDEXRESPONSE"]._serialized_start = 6219
151
- _globals["_DELETEINDEXRESPONSE"]._serialized_end = 6257
152
- _globals["_LISTINDEXESREQUEST"]._serialized_start = 6259
153
- _globals["_LISTINDEXESREQUEST"]._serialized_end = 6279
154
- _globals["_LISTINDEXESRESPONSE"]._serialized_start = 6281
155
- _globals["_LISTINDEXESRESPONSE"]._serialized_end = 6323
156
- _globals["_RETRAINVECTORINDEXREQUEST"]._serialized_start = 6325
157
- _globals["_RETRAINVECTORINDEXREQUEST"]._serialized_end = 6372
158
- _globals["_RETRAINVECTORINDEXRESPONSE"]._serialized_start = 6374
159
- _globals["_RETRAINVECTORINDEXRESPONSE"]._serialized_end = 6419
160
- _globals["_ALTERVECTORINDEXREQUEST"]._serialized_start = 6421
161
- _globals["_ALTERVECTORINDEXREQUEST"]._serialized_end = 6508
162
- _globals["_ALTERVECTORINDEXRESPONSE"]._serialized_start = 6510
163
- _globals["_ALTERVECTORINDEXRESPONSE"]._serialized_end = 6614
164
- _globals["_REORDERREQUEST"]._serialized_start = 6616
165
- _globals["_REORDERREQUEST"]._serialized_end = 6652
166
- _globals["_REORDERRESPONSE"]._serialized_start = 6654
167
- _globals["_REORDERRESPONSE"]._serialized_end = 6710
168
- _globals["_SEARCHSERVICE"]._serialized_start = 7107
169
- _globals["_SEARCHSERVICE"]._serialized_end = 7401
170
- _globals["_INDEXSERVICE"]._serialized_start = 7404
171
- _globals["_INDEXSERVICE"]._serialized_end = 8178
172
- # @@protoc_insertion_point(module_scope)