根据Neo4J中的节点属性使用不同的分析器

时间:2019-05-26 20:20:24

标签: neo4j cypher

我正在创建一个数据库来存储具有多种语言内容的节点。

我有一个类似的模型:

(Book {title, summary, text})<-[WRITES {date}]-(Author {name, lang})

我希望能够对Book的书名和几种语言的文本进行全文搜索。

我试图以非常愚蠢的方式使用不同的分析器简单地创建多个索引:

CALL db.index.fulltext.createNodeIndex("searchEN",["Book"],["title", "summary", "text"], {analyzer: "english")
CALL db.index.fulltext.createNodeIndex("searchFR",["Book"],["title", "summary", "text"], {analyzer: "french")

但是当我尝试为法语创建索引时,出现此错误:

neobolt.exceptions.ClientError: There already exists an index NODE:label[0](property[1], property[9], property[11]).

我想将英语搜索限制在英语作者写的书中,而不必创建像EnglishBook这样的新节点类型。我想避免这种情况,因为架构的其他节点类型可以与其他语言的书籍共享连接。

例如,我仍然希望能够做到:

MATCH (p: Publisher)-[r: PUBLISHES]->(b: Book)
RETURN p, r, b

0 个答案:

没有答案