Сервер разработки GAE сохраняет индексы полнотекстового поиска после перезапуска?

Есть ли способ заставить сервер разработки GAE сохранять индексы полнотекстового поиска после перезапуска? Я обнаружил, что индекс теряется при каждом перезапуске сервера разработки.

Я уже использую путь к статическому хранилищу данных при запуске сервера разработки (опция --datastore_path).


person HorseloverFat    schedule 12.12.2012    source источник
comment
то же самое происходит со мной. я сделал удобный обработчик/метод для переиндексации всех объектов, когда это происходит.   -  person aschmid00    schedule 12.12.2012


Ответы (3)


Эта функция была добавлена ​​несколько релизов назад (кажется, в 1.7.1 или 1.7.2). Если вы используете SDK последних нескольких месяцев, он должен работать. Вы можете попробовать явно установить флаг --search_indexes_path на dev_appserver.py; возможно, расположение по умолчанию (/tmp/) недоступно для записи. Не могли бы вы опубликовать первые несколько строк логов с момента запуска dev_appserver?

person Haldean Brown    schedule 12.12.2012
comment
Я пытался использовать флаг --search_indexes_path, и это не сработало. Соответствующая строка из журнала будет выглядеть так: WARNING 2012-12-17 13:36:04,474 simple_search_stub.py:950] Could not read search indexes from C:\CBFW2_DATA\LOCAL.searchindexes (это было после того, как я поместил некоторые данные в поисковый индекс, остановил, а затем перезапустил сервер разработки). Я использую SDK 1.7.3. - person HorseloverFat; 17.12.2012
comment
Хм, это странно. Не могли бы вы опубликовать полную команду, которую вы используете для запуска dev_appserver? Есть ли какие-либо строки в журналах, когда вы останавливаете сервер разработки, в которых упоминается поиск? - person Haldean Brown; 19.12.2012
comment
Вот полный набор параметров, которые я использую для запуска dev_appserver.py: --debug --datastore_path=C:\CBFW2_DATA\LOCAL.datastore --default_partition="" --address=localhost --use_sqlite --search_indexes_path=C:\CBFW2_DATA\LOCAL.searchindexes. - person HorseloverFat; 19.12.2012
comment
Вот запись в журнале, которая может указывать на проблему: ERROR 2012-12-19 09:42:54,936 warnings.py:133] C:\Program Files (x86)\Google\google_appengine\google\appengine\api\search\search.py:3205: DeprecationWarning: consistency is deprecated. GLOBALLY_CONSISTENT is no longer supported. spec_pb.set_consistency(_CONSISTENCY_MODES_TO_PB_MAP.get(index.consistency). - person HorseloverFat; 19.12.2012
comment
Насколько мне известно, я не настраиваю свой индекс как глобально согласованный. Вот код, который я использую для добавления документов: search.Index(name=self._INDEX_NAME).put(document_to_index) - person HorseloverFat; 19.12.2012
comment
Это предупреждение является известной проблемой и исправлено в версии 1.7.4. Это похоже на ошибку. Не могли бы вы открыть ошибку в системе отслеживания ошибок (code.google.com/p/googleappengine/ вопросов/список) и вставьте ссылку сюда, и я буду следить? - person Haldean Brown; 19.12.2012
comment
Я открыл отчет об ошибке: code.google.com/p/googleappengine/issues/ - person HorseloverFat; 24.12.2012

на случай, если кто-то еще придет искать это, похоже, что простое решение теперь заключается в том, чтобы указать

--storage_path=/not/the/tmp/dir

вы все равно можете переопределить это с помощью --datastore_path и т. д.

https://developers.google.com/appengine/docs/python/tools/devserver (внизу страницы..)

person lecstor    schedule 15.10.2013

Похоже, это больше не проблема. согласно документации (и моим тестам):

«Веб-сервер разработки имитирует хранилище данных App Engine с помощью файла на вашем компьютере. Этот файл сохраняется между вызовами веб-сервера, поэтому сохраненные вами данные будут по-прежнему доступны при следующем запуске веб-сервера».

Пожалуйста, дайте мне знать, если это не так, и я буду следить за этим.

person Mehdy    schedule 05.12.2013