Skip to content

Commit ea46ffa

Browse files
committed
feat: add auto_index option
1 parent 9c964d6 commit ea46ffa

File tree

5 files changed

+21
-10
lines changed

5 files changed

+21
-10
lines changed

CHANGES.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ Changelog
44
Here you can see the full list of changes between each SQLAlchemy-Searchable release.
55

66

7+
1.4.1 (2021-06-15)
8+
^^^^^^^^^^^^^^^^^^
9+
10+
- Added auto_index option
11+
12+
713
1.4.0 (2021-06-13)
814
^^^^^^^^^^^^^^^^^^
915

sqlalchemy_searchable/__init__.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
from .vectorizers import Vectorizer
1111

12-
__version__ = '1.4.0'
12+
__version__ = '1.4.1'
1313

1414

1515
vectorizer = Vectorizer()
@@ -240,6 +240,7 @@ class SearchManager():
240240
'search_trigger_function_name': '{table}_{column}_update',
241241
'regconfig': 'pg_catalog.english',
242242
'weights': (),
243+
'auto_index': True
243244
}
244245

245246
def __init__(self, options={}):
@@ -293,7 +294,8 @@ def process_mapper(self, mapper, cls):
293294
if column in self.processed_columns:
294295
continue
295296

296-
self.append_index(cls, column)
297+
if self.option(column, 'auto_index'):
298+
self.append_index(cls, column)
297299

298300
self.processed_columns.append(column)
299301

tests/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ def options(self):
5555
return {
5656
'remove_symbols': self.remove_symbols,
5757
'search_trigger_name': self.search_trigger_name,
58-
'search_trigger_function_name': self.search_trigger_function_name
58+
'search_trigger_function_name': self.search_trigger_function_name,
59+
'auto_index': True
5960
}
6061

6162
def create_tables(self):

tests/test_multiple_vectors_per_class.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ class TextItem(self.Base):
2525

2626
content = sa.Column(sa.UnicodeText)
2727

28-
name_vector = sa.Column(TSVectorType('name'))
28+
name_vector = sa.Column(TSVectorType('name', auto_index=True))
2929

30-
content_vector = sa.Column(TSVectorType('content'))
30+
content_vector = sa.Column(TSVectorType('content', auto_index=True))
3131

3232

3333
class TestMultipleSearchVectorsSearchFunction(TestCase):
@@ -41,8 +41,8 @@ class TextMultiItem(self.Base):
4141

4242
name = sa.Column(sa.Unicode(255))
4343
content = sa.Column(sa.UnicodeText)
44-
name_vector = sa.Column(TSVectorType('name'))
45-
content_vector = sa.Column(TSVectorType('content'))
44+
name_vector = sa.Column(TSVectorType('name', auto_index=False))
45+
content_vector = sa.Column(TSVectorType('content', auto_index=False))
4646

4747
self.TextMultiItem = TextMultiItem
4848

@@ -60,5 +60,7 @@ def test_choose_vector(self):
6060
query = self.TextItemQuery(self.TextMultiItem, self.session)
6161
s1 = search(query, 'ipsum', vector=self.TextMultiItem.name_vector)
6262
assert s1.first().name == 'ipsum'
63-
s2 = search(query, 'ipsum', vector=self.TextMultiItem.content_vector)
64-
assert s2.first().name == 'index'
63+
64+
def test_without_auto_index(self):
65+
indexes = self.TextMultiItem.__table__.indexes
66+
assert indexes == set()

tests/test_schema_creation.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,6 @@ class TextItem(self.Base):
2929

3030
name = sa.Column(sa.Unicode(255))
3131

32-
search_vector = sa.Column(TSVectorType())
32+
search_vector = sa.Column(TSVectorType(auto_index=True))
3333

3434
content = sa.Column(sa.UnicodeText)

0 commit comments

Comments
 (0)