Neural query brings different counts for same query upon reindexing

Versions (relevant - OpenSearch/Dashboard/Server OS/Browser):
Opensearch: 2.19.0

Describe the issue:
The neural query/knn query brings inconsistent counts for same query when index is rebuilt.
Not sure if knn graph construction varies each time.
Note that, the embeddings are not changing each time when indexed. and query embedding is also generated by same model which was used for generating dense embedding for indexing.

Configuration:
Below are my index configuration for knn:

"knn": true,
"replication.type": "SEGMENT",
"_source": {
        "excludes": [
          "description_dense_vector"
        ]
      }
"description_dense_vector": {
          "type": "knn_vector",
          "dimension": 768,
          "method": {
            "name": "hnsw",
            "engine": "faiss",
            "space_type": "cosinesimil",
            "parameters": {}
          }
        },
      "merge": {
          "policy": {
            "max_merge_at_once": "28",
            "segments_per_tier": "3",
            "floor_segment": "250mb",
            "deletes_pct_allowed": "20"
          }
        },
        "number_of_shards": 4,

I am excluding dense vector from source to optimise storage and increase performance. above is my knn setting

Relevant Logs or Screenshots:

Any help would be much appreciated here @vamshin @pablo

Any solution would be highly appreciated here,

additionally i tried

tuning hnsw params like ef_construction, ef_search and m where it also doesnt performance, saw some improvement in result counts and delta between different indices for same query.

but still the inconsistency across queries is fairly large between indices (for same set of products and same embeddings)