This is identical to filter, except that recall terms are not exposed to the ranking framework and thus not ranked. As such, one can not use unprefixed terms; they must either be positive or negative
{'yql': 'select id,title,text from sources * where {targetHits:10}nearestNeighbor(embedding, q)', 'query': 'how does the coronavirus respond to changes in the weather', 'ranking.profile': 'dense', 'presentation.format.tensors': 'short-value', 'hits': 3, 'language': 'en', 'timeout': '15s', 'presentation.timing': 'true', 'input.query(q)': 'embed(bge, "Represent this sentence for searching relevant passages: how does the coronavirus respond to changes in the weather")', 'recall': '+text:ARIMA +text:"novel coronavirus illness"', 'tracelevel': 3}
Which is the expected query tree. filter (not highlight), and ranking is disabled.
Using model.filter in combination with YQL
{'yql': 'select id,title,text from sources * where {targetHits:10}nearestNeighbor(embedding, q)', 'query': 'how does the coronavirus respond to changes in the weather', 'ranking.profile': 'dense', 'presentation.format.tensors': 'short-value', 'hits': 3, 'language': 'en', 'timeout': '15s', 'presentation.timing': 'true', 'input.query(q)': 'embed(bge, "Represent this sentence for searching relevant passages: how does the coronavirus respond to changes in the weather")', 'filter': '+text:ARIMA +text:"novel coronavirus illness"', 'tracelevel': 3}
It gives the following incorrect query tree (filter is silently dropped)
sc0.num0 search to dispatch: query=[NEAREST_NEIGHBOR {field=embedding,queryTensorName=q,hnsw.exploreAdditionalHits=0,distanceThreshold=Infinity,approximate=true,targetHits=10}] timeout=14960ms offset=0 hits=3 rankprofile[dense]
Using
recall
in combination with YQLUsing recall
Gives the following correct query tree
Which is the expected query tree. filter (not highlight), and ranking is disabled.
Using
model.filter
in combination with YQLIt gives the following incorrect query tree (filter is silently dropped)