from whoosh import classify
from whoosh import highlight
from whoosh import query
+from whoosh.analysis import CharsetFilter
+from whoosh.analysis import StemmingAnalyzer
from whoosh.fields import BOOLEAN
from whoosh.fields import DATETIME
from whoosh.fields import KEYWORD
from whoosh.qparser.dateparse import English
from whoosh.qparser.plugins import FieldsPlugin
from whoosh.scoring import TF_IDF
+from whoosh.support.charset import accent_map
from whoosh.util.times import timespan
from whoosh.writing import AsyncWriter
def get_schema() -> Schema:
+ # add accent-folding filter to a stemming analyzer:
+ af_analyzer = StemmingAnalyzer() | CharsetFilter(accent_map)
+
return Schema(
id=NUMERIC(stored=True, unique=True),
- title=TEXT(sortable=True),
- content=TEXT(),
+ title=TEXT(sortable=True, analyzer=af_analyzer),
+ content=TEXT(analyzer=af_analyzer),
asn=NUMERIC(sortable=True, signed=False),
correspondent=TEXT(sortable=True),
correspondent_id=NUMERIC(),
response = self.client.get("/api/search/autocomplete/?term=app")
self.assertEqual(response.status_code, status.HTTP_200_OK)
- self.assertEqual(response.data, [b"apples", b"applebaum", b"appletini"])
+ self.assertEqual(response.data, [b"appl", b"applebaum", b"appletini"])
d3.owner = u2
response = self.client.get("/api/search/autocomplete/?term=app")
self.assertEqual(response.status_code, status.HTTP_200_OK)
- self.assertEqual(response.data, [b"apples", b"applebaum"])
+ self.assertEqual(response.data, [b"appl", b"applebaum"])
assign_perm("view_document", u1, d3)
response = self.client.get("/api/search/autocomplete/?term=app")
self.assertEqual(response.status_code, status.HTTP_200_OK)
- self.assertEqual(response.data, [b"apples", b"applebaum", b"appletini"])
+ self.assertEqual(response.data, [b"appl", b"applebaum", b"appletini"])
def test_search_autocomplete_field_name_match(self):
"""