Просмотр исходного кода

fix: improve document filtering in full text search(elasticsearch) (#22683)

tags/1.7.0
uply23333 3 месяцев назад
Родитель
Сommit
ab012fe1a2
Аккаунт пользователя с таким Email не найден
1 измененных файлов: 9 добавлений и 2 удалений
  1. 9
    2
      api/core/rag/datasource/vdb/elasticsearch/elasticsearch_vector.py

+ 9
- 2
api/core/rag/datasource/vdb/elasticsearch/elasticsearch_vector.py Просмотреть файл

@@ -147,10 +147,17 @@ class ElasticSearchVector(BaseVector):
return docs

def search_by_full_text(self, query: str, **kwargs: Any) -> list[Document]:
query_str = {"match": {Field.CONTENT_KEY.value: query}}
query_str: dict[str, Any] = {"match": {Field.CONTENT_KEY.value: query}}
document_ids_filter = kwargs.get("document_ids_filter")

if document_ids_filter:
query_str["filter"] = {"terms": {"metadata.document_id": document_ids_filter}} # type: ignore
query_str = {
"bool": {
"must": {"match": {Field.CONTENT_KEY.value: query}},
"filter": {"terms": {"metadata.document_id": document_ids_filter}},
}
}

results = self._client.search(index=self._collection_name, query=query_str, size=kwargs.get("top_k", 4))
docs = []
for hit in results["hits"]["hits"]:

Загрузка…
Отмена
Сохранить