Hybrid Search · lexical, vector, and the combination

index charts · pipeline hybrid-normalization · embeddings Qwen3-Embedding-8B

BM25 (lexical)

0 hits · 4 ms

No matches. The index may be empty.

Vector (kNN)

0 hits · 3 ms · 114 ms embedding

No matches. The index may be empty.

Hybrid (normalised)

0 hits · 3 ms · 114 ms embedding

No matches. The index may be empty.

Query and response · read only

bm25 · request

{
  "_source": [
    "id",
    "doc_id",
    "part_index",
    "doc_type",
    "patient_id",
    "staff_id",
    "timestamp",
    "text"
  ],
  "highlight": {
    "fields": {
      "text": {}
    },
    "post_tags": [
      "\u003c/mark\u003e"
    ],
    "pre_tags": [
      "\u003cmark\u003e"
    ]
  },
  "query": {
    "match": {
      "text": "MI"
    }
  },
  "size": 10
}

bm25 · response

{
  "_shards": {
    "failed": 0,
    "skipped": 0,
    "successful": 5,
    "total": 5
  },
  "hits": {
    "hits": [],
    "max_score": null,
    "total": {
      "relation": "eq",
      "value": 0
    }
  },
  "timed_out": false,
  "took": 4
}

vector · request

{
  "_source": [
    "id",
    "doc_id",
    "part_index",
    "doc_type",
    "patient_id",
    "staff_id",
    "timestamp",
    "text"
  ],
  "query": {
    "knn": {
      "vector": {
        "k": 10,
        "vector": "[4096 floats: -0.0149, -0.0030, -0.0091, ...]"
      }
    }
  },
  "size": 10
}

vector · response

{
  "_shards": {
    "failed": 0,
    "skipped": 0,
    "successful": 5,
    "total": 5
  },
  "hits": {
    "hits": [],
    "max_score": null,
    "total": {
      "relation": "eq",
      "value": 0
    }
  },
  "timed_out": false,
  "took": 3
}

hybrid · request

{
  "_source": [
    "id",
    "doc_id",
    "part_index",
    "doc_type",
    "patient_id",
    "staff_id",
    "timestamp",
    "text"
  ],
  "query": {
    "hybrid": {
      "queries": [
        {
          "match": {
            "text": "MI"
          }
        },
        {
          "knn": {
            "vector": {
              "k": 10,
              "vector": "[4096 floats: -0.0149, -0.0030, -0.0091, ...]"
            }
          }
        }
      ]
    }
  },
  "size": 10
}

hybrid · response

{
  "_shards": {
    "failed": 0,
    "skipped": 0,
    "successful": 5,
    "total": 5
  },
  "hits": {
    "hits": [],
    "max_score": 0.0,
    "total": {
      "relation": "eq",
      "value": 0
    }
  },
  "timed_out": false,
  "took": 3
}
Normalisation pipeline · applied to every hybrid query
{
  "description": "Min-max normalisation and arithmetic mean for hybrid queries",
  "phase_results_processors": [
    {
      "normalization-processor": {
        "combination": {
          "parameters": {
            "weights": [
              0.5,
              0.5
            ]
          },
          "technique": "arithmetic_mean"
        },
        "normalization": {
          "technique": "min_max"
        }
      }
    }
  ]
}