Код: Выделить всё
QueryParser). [b]Схема[/b] уже [b]индексирована[/b] и сохранена до запуска проекта. Однако у меня возникла проблема: DerivationPlugin- загружается из индекса во время инициализации.
Код: Выделить всё
self._schema - Когда я создаю синтаксический анализатор с использованием self._schema, DerivationPlugin
не применяется правильно во время синтаксического анализа. - Если я создам новую схему () с теми же полями, что и self._schema, DerivationPlugin работает должным образом.
Код: Выделить всё
const_schema - Однако, если я извлекаю поля strong> из self._schema и использовать их для создания
новой схемы, DerivationPlugin по-прежнему не работает, хотя
поля идентично.
Код: Выделить всё
class BasicSearchEngine:
def __init__(self, qdocindex, query_parser, main_field):
self._docindex = qdocindex
self._schema = self._docindex.get_schema()
fields = {name: field for name, field in self._docindex.get_schema().items()}
const_fields = {
'a_g': NUMERIC(stored=True, unique=False),
'a_l': NUMERIC(stored=True, unique=False),
'a_w': NUMERIC(stored=True, unique=False),
}
const_schema = Schema(**const_fields)
print(const_schema.items() == self._schema.items()) # True
const_schema_fields = {name: field for name, field in const_schema.items()}
print(const_schema_fields == fields) # True
self._parser = query_parser(main_field, self._schema, group=qparser.OrGroup)
self._parser.add_plugin(DerivationPlugin)
Подробнее здесь: https://stackoverflow.com/questions/792 ... ded-schema
Мобильная версия