【问题标题】:Neo4j, Neography: Making search smarterNeo4j,Neography:让搜索更智能
【发布时间】:2014-09-18 14:26:41
【问题描述】:

我一直在使用full-text-indexes 搜索 neo4j 图形数据库。但万一用户输入错误的拼写或查询不匹配任何结果。在这种情况下,有没有办法处理这种情况或did you mean 类型的功能?

此外,如何根据用户正在搜索的查询使搜索更智能?我遇到了SearchKick,但这与neography 没有任何集成。

【问题讨论】:

    标签: search neo4j full-text-indexing neography


    【解决方案1】:

    您可以在 lucene 查询中引入模糊性。您可以通过在查询中附加一个“~”符号并指定因素来做到这一点,例如name:mistqke~0.8 仍应找到文本“错误”。模糊因子介于 0 和 1 之间。接近 1 的值将匹配更高的相似度。

    如果您想组合通配符和模糊查询,您可以使用如下内容:

    START n=node:index('name:mistqke~0.8 or name:*mistqke*')
    RETURN DISTINCT n;
    

    注意 lucene 查询中的“OR”和 RETURN 子句中的“DISTINCT”。

    【讨论】:

    • 嗨,这很有趣.. 但是为了匹配部分字符串,我使用了name:mistqke*~0.8,它没有考虑到模糊性。而在模糊因子给出name:mistqke~0.8*Neo.DatabaseError.Statement.ExecutionFailure之后使用*...这种情况如何处理?
    • 我认为您实际上不能将通配符和模糊查询结合起来。见stackoverflow.com/questions/2631206/…
    • 谢谢。我以某种方式避免了该用例,目前这对我有用。
    猜你喜欢
    • 1970-01-01
    • 2010-09-18
    • 2015-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多