mirror of
https://github.com/deepset-ai/haystack.git
synced 2026-01-07 20:46:31 +00:00
fix: linefeeds in custom_query (#3813)
* fix linefeeds in custom_query * add double quote test case
This commit is contained in:
parent
0c2d13f1b8
commit
4a0a054164
@ -1064,7 +1064,7 @@ class SearchEngineDocumentStore(KeywordDocumentStore):
|
||||
elif custom_query: # substitute placeholder for query and filters for the custom_query template string
|
||||
template = Template(custom_query)
|
||||
# replace all "${query}" placeholder(s) with query
|
||||
substitutions = {"query": f'"{query}"'}
|
||||
substitutions = {"query": json.dumps(query)}
|
||||
# For each filter we got passed, we'll try to find & replace the corresponding placeholder in the template
|
||||
# Example: filters={"years":[2018]} => replaces {$years} in custom_query with '[2018]'
|
||||
if filters:
|
||||
|
||||
@ -272,6 +272,14 @@ def test_elasticsearch_custom_query():
|
||||
results = retriever.retrieve(query="test", filters={"years": ["2020", "2021"]})
|
||||
assert len(results) == 4
|
||||
|
||||
# test linefeeds in query
|
||||
results = retriever.retrieve(query="test\n", filters={"years": ["2020", "2021"]})
|
||||
assert len(results) == 3
|
||||
|
||||
# test double quote in query
|
||||
results = retriever.retrieve(query='test"', filters={"years": ["2020", "2021"]})
|
||||
assert len(results) == 3
|
||||
|
||||
# test custom "term" query
|
||||
retriever = BM25Retriever(
|
||||
document_store=document_store,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user