2015-01-23 6 views
1

Я хочу создать несколько индексов, содержащих результаты пользовательских функций, для одного или нескольких свойств узла в neo4j.Предоставляет ли Neo4j функциональные индексы

пример свойство: имя, почтовый индекс

функция: name_1st_3_chars + почтовые индексы

названия: "Дэйв", почтовый индекс: "nw14da" значение

функции: davnw14da

Я хочу быть способный выполнять быстрый поиск узлов на основе значений функций.

ответ

3

Вы можете добиться этого с помощью некоторого java-кодирования. С GraphDatabaseService зарегистрируйтесь TransactionEventHandler. TransactionEventHandlers обеспечивают функции обратного вызова, связанные с механизмом транзакции. Этот способ может выполнить описанный расчет «свойства функции». Вычисленное свойство необходимо сохранить с помощью setProperty.

Чтобы установить индекс, используйте CREATE INDEX ON :MyLabel(myfunctionProperty).

С этим на месте запрос, например MATCH (something:MyLabel) WHERE something.myfuntionPropery = 'davnw14da' RETURN something, будет использовать объявленный индекс.

Смежные вопросы