Skip to content

Commit 26f7b3c

Browse files
committed
Revert "ES: update dependencies"
1 parent e2d4c72 commit 26f7b3c

File tree

8 files changed

+54
-50
lines changed

8 files changed

+54
-50
lines changed

readthedocs/search/documents.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import logging
22

33
from django.conf import settings
4-
from django_elasticsearch_dsl import Document, Index, fields
4+
from django_elasticsearch_dsl import DocType, Index, fields
55
from elasticsearch import Elasticsearch
66

77
from readthedocs.projects.models import HTMLFile, Project
@@ -28,8 +28,8 @@ def update(self, *args, **kwargs):
2828
super().update(*args, **kwargs)
2929

3030

31-
@project_index.document
32-
class ProjectDocument(RTDDocTypeMixin, Document):
31+
@project_index.doc_type
32+
class ProjectDocument(RTDDocTypeMixin, DocType):
3333

3434
# Metadata
3535
url = fields.TextField(attr='get_absolute_url')
@@ -43,14 +43,14 @@ class ProjectDocument(RTDDocTypeMixin, Document):
4343

4444
modified_model_field = 'modified_date'
4545

46-
class Django:
46+
class Meta:
4747
model = Project
4848
fields = ('name', 'slug', 'description')
4949
ignore_signals = True
5050

5151

52-
@page_index.document
53-
class PageDocument(RTDDocTypeMixin, Document):
52+
@page_index.doc_type
53+
class PageDocument(RTDDocTypeMixin, DocType):
5454

5555
# Metadata
5656
project = fields.KeywordField(attr='project.slug')
@@ -88,7 +88,7 @@ class PageDocument(RTDDocTypeMixin, Document):
8888

8989
modified_model_field = 'modified_date'
9090

91-
class Django:
91+
class Meta:
9292
model = HTMLFile
9393
fields = ('commit', 'build')
9494
ignore_signals = True

readthedocs/search/faceted_search.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ def query(self, search, query):
148148
class ProjectSearchBase(RTDFacetedSearch):
149149
facets = {'language': TermsFacet(field='language')}
150150
doc_types = [ProjectDocument]
151-
index = ProjectDocument._index._name
151+
index = ProjectDocument._doc_type.index
152152
fields = ('name^10', 'slug^5', 'description')
153153
operators = ['and', 'or']
154154

@@ -163,7 +163,7 @@ class PageSearchBase(RTDFacetedSearch):
163163
),
164164
}
165165
doc_types = [PageDocument]
166-
index = PageDocument._index._name
166+
index = PageDocument._doc_type.index
167167

168168
# boosting for these fields need to be close enough
169169
# to be re-boosted by the page rank.

readthedocs/search/management/commands/reindex_elasticsearch.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,15 @@
11
import datetime
22
import logging
33

4-
from celery import chain, chord
4+
from celery import chord, chain
55
from django.apps import apps
66
from django.conf import settings
77
from django.core.management import BaseCommand
88
from django.utils import timezone
99
from django_elasticsearch_dsl.registries import registry
1010

11-
from ...tasks import (
12-
create_new_es_index,
13-
index_missing_objects,
14-
index_objects_to_es,
15-
switch_es_index,
16-
)
11+
from ...tasks import (index_objects_to_es, switch_es_index, create_new_es_index,
12+
index_missing_objects)
1713

1814
log = logging.getLogger(__name__)
1915

@@ -68,11 +64,11 @@ def _run_reindex_tasks(self, models, queue):
6864
app_label = queryset.model._meta.app_label
6965
model_name = queryset.model.__name__
7066

71-
index_name = doc._index._name
67+
index_name = doc._doc_type.index
7268
new_index_name = "{}_{}".format(index_name, timestamp)
7369
# Set index temporarily for indexing,
7470
# this will only get set during the running of this command
75-
doc._index._name = new_index_name
71+
doc._doc_type.index = new_index_name
7672

7773
pre_index_task = create_new_es_index.si(app_label=app_label,
7874
model_name=model_name,

readthedocs/search/serializers.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ def get_blocks(self, obj):
130130

131131
sorted_results = sorted(
132132
itertools.chain(sections, domains),
133-
key=attrgetter('meta.score'),
133+
key=attrgetter('_score'),
134134
reverse=True,
135135
)
136136
sorted_results = [
@@ -157,11 +157,11 @@ def get_content(self, obj):
157157
class DomainSearchSerializer(serializers.Serializer):
158158

159159
type = serializers.CharField(default='domain', source=None, read_only=True)
160-
role = serializers.CharField(source='role_name')
161-
name = serializers.CharField()
162-
id = serializers.CharField(source='anchor')
163-
content = serializers.CharField(source='docstrings')
164-
highlights = DomainHighlightSerializer(source='meta.highlight', default=dict)
160+
role = serializers.CharField(source='_source.role_name')
161+
name = serializers.CharField(source='_source.name')
162+
id = serializers.CharField(source='_source.anchor')
163+
content = serializers.CharField(source='_source.docstrings')
164+
highlights = DomainHighlightSerializer(source='highlight', default=dict)
165165

166166

167167
class SectionHighlightSerializer(serializers.Serializer):
@@ -181,7 +181,7 @@ def get_content(self, obj):
181181
class SectionSearchSerializer(serializers.Serializer):
182182

183183
type = serializers.CharField(default='section', source=None, read_only=True)
184-
id = serializers.CharField()
185-
title = serializers.CharField()
186-
content = serializers.CharField()
187-
highlights = SectionHighlightSerializer(source='meta.highlight', default=dict)
184+
id = serializers.CharField(source='_source.id')
185+
title = serializers.CharField(source='_source.title')
186+
content = serializers.CharField(source='_source.content')
187+
highlights = SectionHighlightSerializer(source='highlight', default=dict)

readthedocs/search/tasks.py

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@
99
from readthedocs.projects.models import Project
1010
from readthedocs.search.models import SearchQuery
1111
from readthedocs.worker import app
12-
13-
from .utils import _get_document, _get_index
12+
from .utils import _get_index, _get_document
1413

1514
log = logging.getLogger(__name__)
1615

@@ -45,19 +44,17 @@ def index_objects_to_es(
4544

4645
if index_name:
4746
# Hack the index name temporarily for reindexing tasks
48-
old_index_name = document._index._name
49-
document._index._name = index_name
47+
old_index_name = document._doc_type.index
48+
document._doc_type.index = index_name
5049
log.info('Replacing index name %s with %s', old_index_name, index_name)
5150

5251
log.info("Indexing model: %s, '%s' objects", model.__name__, queryset.count())
5352
doc_obj.update(queryset.iterator())
5453

5554
if index_name:
56-
log.info(
57-
'Undoing index replacement, settings %s with %s',
58-
document._index._name, old_index_name,
59-
)
60-
document._index._name = old_index_name
55+
log.info('Undoing index replacement, settings %s with %s',
56+
document._doc_type.index, old_index_name)
57+
document._doc_type.index = old_index_name
6158

6259

6360
@app.task(queue='web')

readthedocs/search/utils.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ def _get_index(indices, index_name):
8989
:return: DED Index
9090
"""
9191
for index in indices:
92-
if index._name == index_name:
92+
if str(index) == index_name:
9393
return index
9494

9595

@@ -116,10 +116,7 @@ def _indexing_helper(html_objs_qs, wipe=False):
116116
else, html_objs are indexed.
117117
"""
118118
from readthedocs.search.documents import PageDocument
119-
from readthedocs.search.tasks import (
120-
delete_objects_in_es,
121-
index_objects_to_es,
122-
)
119+
from readthedocs.search.tasks import index_objects_to_es, delete_objects_in_es
123120

124121
if html_objs_qs:
125122
obj_ids = []
@@ -151,7 +148,7 @@ def _get_sorted_results(results, source_key='_source'):
151148
source_key: hit._source.to_dict(),
152149
'highlight': hit.highlight.to_dict() if hasattr(hit, 'highlight') else {}
153150
}
154-
for hit in sorted(results, key=attrgetter('meta.score'), reverse=True)
151+
for hit in sorted(results, key=attrgetter('_score'), reverse=True)
155152
]
156153

157154
return sorted_results

readthedocs/settings/base.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -581,17 +581,16 @@ def DOCKER_LIMITS(self):
581581
ES_INDEXES = {
582582
'project': {
583583
'name': 'project_index',
584-
'settings': {
585-
'number_of_shards': 1,
586-
'number_of_replicas': 1
587-
},
584+
'settings': {'number_of_shards': 1,
585+
'number_of_replicas': 1
586+
}
588587
},
589588
'page': {
590589
'name': 'page_index',
591590
'settings': {
592591
'number_of_shards': 1,
593592
'number_of_replicas': 1,
594-
},
593+
}
595594
},
596595
}
597596

requirements/pip.txt

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,23 @@ GitPython==3.1.7
4747

4848
# Search
4949
elasticsearch==6.8.1 # pyup: <7.0.0
50-
elasticsearch-dsl==6.4.0 # pyup: <7.0
51-
django-elasticsearch-dsl==6.4.2 # pyup: <7.0
50+
51+
52+
# elasticsearch-dsl==6.3.1 produces this error
53+
# File "/home/travis/build/rtfd/readthedocs.org/.tox/py36/lib/python3.6/site-packages/django_elasticsearch_dsl/documents.py", line 8, in <module>
54+
# from elasticsearch_dsl.document import DocTypeMeta as DSLDocTypeMeta
55+
# ImportError: cannot import name 'DocTypeMeta'
56+
#
57+
# Commit 97e3f75 adds the NestedFacet
58+
git+https://github.com/elastic/elasticsearch-dsl-py@97e3f756a8cacd1c863d3ced3d17abcafbb0f85e#egg=elasticsearch-dsl==6.1.1
59+
60+
# django-elasticsearch-dsl==6.4.1 produces this error
61+
# File "/home/travis/build/readthedocs/readthedocs.org/.tox/py36/lib/python3.6/site-packages/django_elasticsearch_dsl/__init__.py", line 3, in <module>
62+
# from .documents import DocType # noqa
63+
# File "/home/travis/build/readthedocs/readthedocs.org/.tox/py36/lib/python3.6/site-packages/django_elasticsearch_dsl/documents.py", line 7, in <module>
64+
# from elasticsearch_dsl import Document as DSLDocument
65+
# ImportError: cannot import name 'Document'
66+
django-elasticsearch-dsl==0.5.1 # pyup: ignore
5267
selectolax==0.2.7
5368

5469
# Ignoring orjson for now because it makes Travis to fail

0 commit comments

Comments
 (0)