2017-03-20 1 views
1

작은 파일 및 이메일 검색 엔진을 구축하려고합니다. 또한 전체 텍스트 검색에 고급 검색 쿼리를 사용하고 싶습니다. 그러므로 나는 lucene 지수를보고있다. 내가 본 것으로부터 node_auto_index와 apoc.index.addNode의 두 가지 접근법이있다.Neo4j : node_auto_index/lucene 색인을 사용하면 32k보다 긴 색인 생성

색인 설정을 올바르게 설정하면 작은 속성으로 색인 생성 노드가 작동합니다. 32k보다 큰 특성을 가진 노드를 색인하려고 할 때, neo4j는 실패하고 (그리고 사용할 수없는 상태가된다).

WARNING :

오류 메시지 귀결 절차 apoc.index.addNode 호출 실패 : java.lang.IllegalArgumentException가 :에 의한 문헌 필드 = "text_e"적어도 하나 엄청난 용어가 포함 (UTF8 인코딩은 최대 길이 32766)보다 길며 건너 뛰었습니다. 해당 조건을 생성하지 않으려면 분석기를 수정하십시오. '012, 110, 101, 111, 32, 110, 101, 111, 32, 110, 101, 111, 32, 110, 101, 111, 32, 110, 101, 111 첫 번째 거대한 용어의 접두사는 다음과 같습니다. , 32, 110, 101, 111, 32, 110, 101, 111, 32, 110, 101] ... '원본 메시지 : 바이트는 최대 32766 일 수 있습니다. 길이는 32766 입니다. 40000

나는 3.1.2과 3.1.0+ 에이 팍스 3.1.0.3

에이 문제를 확인했습니다있어 문제의 훨씬 더 긴 설명을 https://baach.de/Members/jhb/neo4j-full-text-indexing에서 찾을 수 있습니다.

이 문제를 해결할 방법이 있습니까? 예 : 내가 잘못한 것을했거나 구성 할 것이 있습니까?

많이 Thx!

+0

빠른 업데이트 : 볼트, 파이썬 또는 사이퍼가 아닙니다. REST API를 사용할 때도 마찬가지입니다 .-((https://baach.de/Members/jhb/neo4j-full-text-indexing#section-5 –

+0

) 이러한 필드를 감지하면이를 분할 할 수 있습니까? –

+0

@Michael Hunger : 제안 해 주셔서 감사합니다. 근접 검색 "jakarta apache"~ 10, 구문 검색 등 여러 검색어에 대해이 작업을 수행 할 수 없으므로 두려운 것 같습니다. 관련성이 너무 높습니다. 문서 빈도 등) 그러나 나는 당신의 질문을 32k에서 실제로 깨는 확인으로 본다. –

답변

2

neo4j는 기본 루씬 제한 때문에 ~ 32k보다 긴 인덱스 값을 지원하지 않습니다. 해당 지역의 세부 정보는 https://github.com/neo4j/neo4j/pull/6213https://github.com/neo4j/neo4j/pull/8404에서 확인할 수 있습니다. 더 긴 값을 여러 용어로 분할해야합니다.

+0

대답 해 주셔서 감사합니다. 아마 조금 어쩌면 OT : 나는 lucene에 대해 전혀 알지 못하지만 궁금합니다. 한계는 "foo bar"의 최대 길이는 3입니다 (분할 후). 속성 길이가 용어 길이의 영향을받는 이유를 알고 있습니까? 고마워요! –