Neo4j 密码查询 Double(NaN) 问题

问题描述 投票:0回答:1

我有一个像下面写的查询。即使经过很多努力,我也无法解决下面给出的错误。当我进行任何排序操作时,我都会遇到此错误。但并非总是如此,在特定情况下。我认为有时我的查询大多数时候不会返回 Double(NaN) 值,因此我很少遇到此错误。

MATCH (news:News {newsId: "/infografik/jurnalist/turkiye-sma-hastaligi-icin-yeni-adimlar-atiyor-26685"})
WITH news
WHERE news.cleanTitle IS NOT NULL

MATCH (otherNews:News {category: news.category})
WHERE news <> otherNews AND otherNews.cleanTitle IS NOT NULL

WITH otherNews,
     apoc.text.sorensenDiceSimilarity(news.cleanTitle, otherNews.cleanTitle) AS sorensen
ORDER BY sorensen DESC
LIMIT 10
RETURN otherNews.title, sorensen, otherNews.category;

错误:

Neo.ClientError.Statement.TypeError Wrong argument type: Can't coerce Double(NaN) to String

我想看到正确排序的结果。当我不排序时,我可以毫无问题地看到结果。但我需要排序的版本。 我尝试将 Sorensen 值转换为字符串,消除 Null 或 NaN 值。但我没有成功。

neo4j cypher graph-databases neo4j-apoc
1个回答
0
投票

将OP的解决方案迁移到答案:

当我将“LIMIT 10”行放在“RETURN”行上方时,我看到错误已解决。但这一次的结果却非常不一致。如果我不设置任何限制,我仍然会遇到同样的错误。我可以将限额增加到一定数量>取决于我使用的数据。当我接近可以达到的极限时,>我返回的数据的准确性会增加。我该如何克服这个问题?

修复:更改这段代码解决了我的问题。感谢Finbar Good 的评论

apoc.text.sorensenDiceSimilarity(toString(news.cleanTitle), toString(otherNews.cleanTitle))
© www.soinside.com 2019 - 2024. All rights reserved.