Допустим, в neo4j
есть узел с меткой Business
и свойством name
, который индексируется следующим образом:
CALL db.index.fulltext.createNodeIndex("businessNameIndex", ["Business"], ["name"])
Запрос для поиска строки в neo4j
будет быть чем-то вроде:
CALL db.index.fulltext.queryNodes( 'businessNameIndex', "library")
YIELD node, score RETURN node.name, score;
, и его вывод будет:
node.name score
"Missoula Public Library" 2.69354248046875
И поверх него добавляется оболочка GraphQL
, где схема определяется следующим образом:
type Query {
fuzzyBusinessByName(searchString: String): [Business] @cypher(statement: """
CALL db.index.fulltext.queryNodes('businessNameIndex', $searchString+'~')
YIELD node, score RETURN node, score;
""")
}
Теперь в интерфейсе neo4j
оценка Lucene легко доступна, поскольку она возвращает оценку вместе с узлами, но как мне получить доступ к той же оценке и в интерфейсе GraphQL
?
Запрос в GraphQL
будет выглядеть так:
{
fuzzyBusinessByName(searchString: "libary") {
name
}
}
, а результат будет:
{
"data": {
"fuzzyBusinessByName": [
{
"name": "Missoula Public Library"
}
]
}
}
Но, как видите, результат нигде не отображается. Любая помощь по этому поводу будет очень признательна. Спасибо.