Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j:使用节点\自动\索引/lucene索引索引长于32k的索引属性_Neo4j_Lucene_Full Text Search - Fatal编程技术网

Neo4j:使用节点\自动\索引/lucene索引索引长于32k的索引属性

Neo4j:使用节点\自动\索引/lucene索引索引长于32k的索引属性,neo4j,lucene,full-text-search,Neo4j,Lucene,Full Text Search,我正在尝试建立一个小文件和电子邮件搜索引擎。我还想使用更高级的搜索查询进行全文搜索。因此,我正在研究lucene索引。据我所见,有两种方法-node_auto_index和apoc.index.addNode 设置索引可以很好地工作,而索引具有小属性的节点也可以工作。当尝试索引属性大于32k的节点时,neo4j失败(并使其进入不可用状态) 错误消息归结为: 警告:调用过程apoc.index.addNode失败:原因: java.lang.IllegalArgumentException:文档至

我正在尝试建立一个小文件和电子邮件搜索引擎。我还想使用更高级的搜索查询进行全文搜索。因此,我正在研究lucene索引。据我所见,有两种方法-node_auto_index和apoc.index.addNode

设置索引可以很好地工作,而索引具有小属性的节点也可以工作。当尝试索引属性大于32k的节点时,neo4j失败(并使其进入不可用状态)

错误消息归结为:

警告:调用过程apoc.index.addNode失败:原因: java.lang.IllegalArgumentException:文档至少包含一个 字段中的巨大术语=“text_e”(其UTF8编码比 最大长度32766),所有这些都被跳过。请改正错误 分析人员不得提出此类条款。第一个字符的前缀 术语是:“[110,101,111,32,110,101,111,32,110,101,101,111,32, 110, 101, 111, 32, 110, 101, 111, 32, 110, 101, 111, 32, 110, 101, 111、32、110、101]…,原始消息:字节最多可为32766 长度;有四万

我已经在3.1.2和3.1.0+apoc 3.1.0.3上对此进行了检查

有关该问题的详细说明,请访问

有办法解决这个问题吗?例如,我是否做错了什么,或者是否有需要配置的内容


太多了

neo4j不支持长于~32k的索引值,因为存在潜在的lucene限制。 有关该区域的一些详细信息,您可以查看: 和。
您需要将这些较长的值拆分为多个术语。

只是一个快速更新:它不是bolt、python或cypher。使用REST API时也会出现这种情况:-(如果你检测到这样的字段,你能将它们拆分吗?@Michael Hunger:谢谢你的建议。我担心这对很多查询都不起作用,例如邻近搜索“jakarta apache”~10、短语搜索等。这也会影响相关性(因为这取决于文档频率)等等。但我认为你的问题是确认它在32k时真的会断裂?谢谢你的回答。也许有点OT:我对lucene一点都不熟悉,但我想知道-限制似乎适用于术语长度,而不是字符串长度?因为在“foo bar”中,最大术语大小为3(拆分后).你知道为什么楼盘大小会受到期限的影响吗?非常感谢!