55from collections .abc import Sequence
66from typing import Any
77
8- from sqlalchemy import Text , cast , func , literal , literal_column , or_
8+ from sqlalchemy import Text , cast , func , literal , literal_column
99from sqlalchemy .dialects .postgresql import ARRAY , array
1010from sqlalchemy .sql import operators
1111from sqlalchemy .sql .elements import ClauseElement , ColumnElement
@@ -386,7 +386,6 @@ def more_like_this(
386386 field : ColumnElement ,
387387 * ,
388388 document_id : Any | None = None ,
389- document_ids : list [Any ] | None = None ,
390389 document : dict [str , Any ] | str | None = None ,
391390 fields : list [str ] | None = None ,
392391 min_term_frequency : int | None = None ,
@@ -400,17 +399,13 @@ def more_like_this(
400399) -> ColumnElement [bool ]:
401400 error_cls = InvalidMoreLikeThisOptionsError
402401
403- sources_provided = sum (x is not None for x in (document_id , document_ids , document ))
402+ sources_provided = sum (x is not None for x in (document_id , document ))
404403 if sources_provided != 1 :
405- raise error_cls ("exactly one of document_id, document_ids, or document must be provided" )
406- if document_ids is not None and len (document_ids ) == 0 :
407- raise error_cls ("document_ids must not be empty" )
404+ raise error_cls ("exactly one of document_id, or document must be provided" )
408405 if document is not None and fields is not None :
409- raise error_cls ("fields can only be used with document_id or document_ids " )
406+ raise error_cls ("fields can only be used with document_id" )
410407 if fields is not None :
411408 require_non_empty_sequence (fields , field_name = "fields" , error_cls = error_cls )
412- if document_ids is not None and any (doc_id is None for doc_id in document_ids ):
413- raise error_cls ("document_ids entries cannot be null" )
414409 if isinstance (document , dict ) and not document :
415410 raise error_cls ("document must not be empty" )
416411
@@ -469,12 +464,6 @@ def _build_mlt_call(source_arg: ClauseElement, *, include_fields: bool) -> Claus
469464 positional_args .append (_text_array (fields ))
470465 return PDBFunctionWithNamedArgs ("more_like_this" , positional_args , named_options )
471466
472- if document_ids is not None :
473- clauses = [
474- field .operate (_QUERY , _build_mlt_call (literal (doc_id ), include_fields = True )) for doc_id in document_ids
475- ]
476- return or_ (* clauses )
477-
478467 if document_id is not None :
479468 return field .operate (_QUERY , _build_mlt_call (literal (document_id ), include_fields = True ))
480469
0 commit comments