有很多关于如何使用 Opensearch 使用矢量索引通过矢量场进行查询的示例。我正在寻找使用 KNN,但我需要查询:
到目前为止,我一直在使用两个查询:
是否可以将它们合并到一个查询中?
示例索引(使用Python):
"settings": {
"index": {
"knn": True,
}
},
"mappings": {
"properties": {
"ItemId": {"type": "keyword"},
"TextBody": {"type": "text"},
"Embeddings": {
"type": "knn_vector",
"dimension": 1536,
},
}
}
根据ItemId查询
query = {
"query": {"match": {"ItemId": <item_id>}},
"_source": True,
}
KNN 搜索
query = {
"size": 4,
"query": {
"script_score": {
"query": {"match_all": {}},
"script": {
"source": "knn_score",
"lang": "knn",
"params": {
"field": "Embeddings",
"query_value": <item_embeddings>,
"space_type": "l2",
},
},
}
},
"_source": False,
"fields": ["ItemId", "TextBody"]
}
您是否发现任何有关在操作系统中的查询中组合两种类型的问题,我认为这里仍然不可能。