Поисковые запросы в neo4j: как отсортировать результаты в neo4j в запросе START с внутренним TFIDF / levenshtein или другими алгоритмами?
Я работаю над моделью, используя названия тем Википедии для своих экспериментов в полнотекстовом индексе.
Я настроил и проиндексировал 'theme' (legacy), и выполнил полнотекстовый поиск для: 'united states'
:
start n=node:topic('name:(united states)') return n
Первые результаты вообще не актуальны:
'List of United States National Historic Landmarks in United States commonwealths and territories, associated states, and foreign states'
[...]
и фактические "Соединенные Штаты" похоронены глубоко вниз по списку.
Таким образом, возникает проблема, заключающаяся в том, что для того, чтобы найти наилучшее совпадение (например, алгоритм Леверштейна, биграмма и т. Д.) По результатам, сначала необходимо извлечь все элементы, соответствующие шаблону.
Это было бы серьезным ограничением, потому что только в этом случае у меня есть 21K строк, ~4 секунды.
Какие алгоритмы использует neo4j для упорядочения результатов полнотекстового поиска (START)? Какое обоснование используется для сортировки результата и как его изменить с помощью шифра? В документе написано, чтобы использовать JAVA API для применения sort() - было бы очень полезно иметь руководство по назначению файлов для изменения, а также узнать, какое обоснование ранжирования используется перед любой настройкой.
РЕДАКТИРОВАНИЕ на основе комментариев ниже - разбиение результатов на страницы возможно как: n= узел: тема ('имя:(Соединенные Штаты)') возвращать n пропустить 10 предел 50;
(пропустите до лимита), но я должен убедиться, что первые результаты значимы до нумерации страниц.
2 ответа
Я не знаю, какие алгоритмы порядка использует Lucene для упорядочения результатов. Тем не менее, о нумерации страниц, если вы измените порядок ограничения и пропустите, как следует, должно быть в порядке.
start n=node:topic('name:(united states)') return n skip 10 limit 50 ;
Я также добавил бы, что если вы выполняете полнотекстовый поиск, возможно, решение, подобное solr, является более подходящим.
Для простого поиска индекса lucene с оценкой вы могли бы быть лучше с этим: