Доступ к оценке lucene в запросе GraphQL, который построен поверх базы данных neo4j - PullRequest
0 голосов
/ 19 июня 2020

Допустим, в 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"
      }
    ]
  }
}

Но, как видите, результат нигде не отображается. Любая помощь по этому поводу будет очень признательна. Спасибо.

...