Skip to content

Commit ffd9664

Browse files
authored
Merge pull request #445 from meilisearch/cropping_highlighting
Add new search parameters highlightPreTag, highlightPostTag and cropMarker
2 parents 58caa51 + 336e548 commit ffd9664

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

tests/index/test_index_search_meilisearch.py

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,72 @@ def test_custom_search_params_with_string_list(index_with_documents):
113113
assert 'title' in response['hits'][0]['_formatted']
114114
assert 'overview' in response['hits'][0]['_formatted']
115115

116+
def test_custom_search_params_with_crop_marker(index_with_documents):
117+
"""Tests search with a list of one string in query params."""
118+
response = index_with_documents().search(
119+
'dragon',
120+
{
121+
'limit': 1,
122+
'attributesToCrop': ['overview'],
123+
'cropLength': 10,
124+
}
125+
)
126+
assert isinstance(response, dict)
127+
assert len(response['hits']) == 1
128+
assert '_formatted' in response['hits'][0]
129+
assert 'overview' in response['hits'][0]['_formatted']
130+
assert response['hits'][0]['_formatted']['overview'].count(' ') < 10
131+
assert response['hits'][0]['_formatted']['overview'].count('…') == 2
132+
133+
def test_custom_search_params_with_customized_crop_marker(index_with_documents):
134+
"""Tests search with a list of one string in query params."""
135+
response = index_with_documents().search(
136+
'dragon',
137+
{
138+
'limit': 1,
139+
'attributesToCrop': ['overview'],
140+
'cropLength': 10,
141+
'cropMarker': '(ꈍᴗꈍ)',
142+
}
143+
)
144+
assert isinstance(response, dict)
145+
assert len(response['hits']) == 1
146+
assert '_formatted' in response['hits'][0]
147+
assert 'overview' in response['hits'][0]['_formatted']
148+
assert response['hits'][0]['_formatted']['overview'].count('(ꈍᴗꈍ)') == 2
149+
150+
def test_custom_search_params_with_highlight_tag(index_with_documents):
151+
"""Tests search with a list of one string in query params."""
152+
response = index_with_documents().search(
153+
'dragon',
154+
{
155+
'limit': 1,
156+
'attributesToHighlight': ['*'],
157+
}
158+
)
159+
assert isinstance(response, dict)
160+
assert len(response['hits']) == 1
161+
assert '_formatted' in response['hits'][0]
162+
assert 'title' in response['hits'][0]['_formatted']
163+
assert response['hits'][0]['_formatted']['title'] == 'How to Train Your <em>Dragon</em>: The Hidden World'
164+
165+
def test_custom_search_params_with_customized_highlight_tag(index_with_documents):
166+
"""Tests search with a list of one string in query params."""
167+
response = index_with_documents().search(
168+
'dragon',
169+
{
170+
'limit': 1,
171+
'attributesToHighlight': ['*'],
172+
'highlightPreTag': '(⊃。•́‿•̀。)⊃ ',
173+
'highlightPostTag': ' ⊂(´• ω •`⊂)',
174+
}
175+
)
176+
assert isinstance(response, dict)
177+
assert len(response['hits']) == 1
178+
assert '_formatted' in response['hits'][0]
179+
assert 'title' in response['hits'][0]['_formatted']
180+
assert response['hits'][0]['_formatted']['title'] == 'How to Train Your (⊃。•́‿•̀。)⊃ Dragon ⊂(´• ω •`⊂): The Hidden World'
181+
116182
def test_custom_search_params_with_facets_distribution(index_with_documents):
117183
index = index_with_documents()
118184
update = index.update_filterable_attributes(['genre'])

0 commit comments

Comments
 (0)