Как обновить устаревшие индексы Lucene Neo4J? - PullRequest
2 голосов
/ 22 апреля 2020

Я обновил версию Neo4J с 3.3.9 до 3.5.17, и при запуске он говорит:

Deprecated index providers in use: lucene-1.0 (9 indexes). Use procedure 'db.indexes()' to see what indexes use which index provider.

Затем, когда я запускаю эту команду, она перечисляет 9 индексов, которые выглядят примерно так:

| "INDEX ON :Concept(name)"   | "Unnamed index" | ["Concept"]   | ["name"]      | "ONLINE" | "node_label_property" | 100.0    | {version: "1.0", key: "lucene"} | 3  | ""  

Вопрос: как их обновить? Они были сделаны для поиска, поэтому я должен удалить их? Или как это будет работать в новой версии?

Спасибо!

1 Ответ

1 голос
/ 24 апреля 2020

Вы можете сохранить старые индексы или удалить их и создать новые.

Для каждого индекса вы можете сделать следующее:

  1. Удалить каждый из них:
DROP INDEX ON :Concept(name); 
Создать новый (родной):
CREATE INDEX ON :Concept(name);

Убедитесь, что они были созданы:
CALL db.indexes();

(это покажет прогресс)

Обратите внимание, что собственные индексы иногда могут иметь ограничения по длине каждого параметра ( Максимальная длина 4096). В этом случае индекс не будет создан, и на шаге 3 вы увидите ошибку.

В этом случае вы можете просто выполнить поиск свойства типа, в котором вы допустили ошибку, используя SIZE(node.property) для фильтрации результатов. Затем измените этот параметр и (необязательно) добавьте к нему ограничение, чтобы избежать этого в будущем.

...