на этот вопрос частично дан ответ в neo4j- унаследованные-индексы-и-авто-индекс-против-новой-метки-базы-схемы-индексы и разница-между-устаревшим-indexing-auto-indexing-and-new-indexing-approa
Я пока не могу комментировать их и создать новую тему здесь. В моей базе данных у меня есть устаревший индекс «тема» и метка «Тема».
Я знаю это:
- а. pattern MATCH (n:Label) будет сканировать узлы;
- б. шаблон START (n:Index) будет искать по устаревшему индексу
- в. auto-index является своего рода устаревшим индексом и должен давать те же результаты, что и (b), но в моем случае это не так.
- д. Пункт START следует заменить на MATCH для «передовой практики».
У меня противоречивые результаты между a. и б. (см. ниже), не может понять, как использовать правильный синтаксис с ПОИСКПОЗ для поиска по индексации вместо меток.
Вот несколько примеров:
1#
start n=node:topic('name:(keyword1 AND keyword2)') return n
6 рядов, 3 мс
start n=node:node_auto_index('name:(keyword1 AND keyword2)') return n;
0 строк
MATCH (n:Topic) where n.name =~ '(?i).*keyword1*.AND.*keyword2*.' return n;
0 строк, 10 000 мс
2#
start n=node:topic('name:(keyword1)') return n
212 строк, 122 мс [все последовательные результаты, содержащие подстроку ключевого слова1]
start n=node:node_auto_index('name:(keyword1)') return n
0 строк
MATCH (n:Topic) where n.name =~ '(?i).*keyword1*.'return n
835 строк, 8 КБ мс [также результаты несвязные, содержащие подстроку eyword]
MATCH (n:Topic) where n.name =~ 'keyword1' return n;
1 строка, >6 КБ мс [точное совпадение]
MATCH (n:topic) where n.name =~ 'keyword1' return n;
нет результатов (здесь я использовал индекс «тема», а не ярлык «Тема»!)
MATCH (node:topic) where node.name =~ 'keyword1' return node;
нет результатов (попытка использовать узел «объект» напрямую, как в синтаксисе автоматического индексирования)
Не могли бы вы помочь пролить свет:
В чем разница между устаревшим индексом и автоматическим индексом и почему между ними возникают противоречивые результаты?
Как использовать предложение MATCH с индексами, а не с метками? Я хочу воспроизвести результаты полнотекстового поиска.
Какой синтаксис для полнотекстового поиска применяется ТОЛЬКО к соседу узла, а не к полной базе данных? СООТВЕТСТВОВАТЬ ? Пункт СТАРТ? унаследованный-индекс ? этикетка? Я запутался.
:Topic
- это метка, которая полностью отличается от ручного / устаревшего индекса, они вообще не подлежат обмену. - person Michael Hunger   schedule 09.08.2015.*
, а не*.
!!! так что это(?i).*keyword1*.'
должно быть (?i).*keyword1.*' - person Michael Hunger   schedule 09.08.2015