cancel
Showing results for 
Search instead for 
Did you mean: 

Fulltext search with wildcard doesn't seem to preserve "reasonable" scoring

sdaschner
Ninja
Ninja

When using the fulltext search and wildcards in queries, the scoring seems to be "lost" and the results have the same score. Is there a way to tell the db to somewhat preserve the scoring?

Example:

CREATE (:Node {name: 'Hello world'});
CREATE (:Node {name: 'Hello world 123'});
CREATE (:Node {name: 'Hell world'});
CREATE (:Node {name: 'Hello again'});

CALL db.index.fulltext.createNodeIndex("names", ["Node"], ["name"], {analyzer: "simple"});

CALL db.index.fulltext.queryNodes("names", 'hello world') YIELD node, score
RETURN node, score
ORDER BY score DESC;

produces the following:

node.name         score
"Hello world"     0.32424992322921753
"Hello world 123" 0.32424992322921753
"Hell world"      0.16212496161460876
"Hello again"     0.16212496161460876

But searching for 'hell* world*' produces

node.name         score
"Hello world"     2.0
"Hell world"      2.0
"Hello world 123" 2.0
"Hello again"     1.0

I would have expected 'Hell world' to have a different (higher) score, since it literally matches, without additional characters. Is there a way to solves such responses for queries to score "closest match first"?

Using neo4j:4.0.4-enterprise.

0 REPLIES 0
Nodes 2022
Nodes
NODES 2022, Neo4j Online Education Summit

On November 16 and 17 for 24 hours across all timezones, you’ll learn about best practices for beginners and experts alike.