更新:これは機能しましたが、この投稿はそのままにしておきます。「POINT」インデックスタイプでのみこの問題に直面していました。フォーラムの投稿を通じて、Spatial プラグインを追加する必要があることを知りました。その後、動作しました。
リクエスト/提案: 例外をスローする時点で Index の型がわかっているので、ヒントも提供できますか? 次のノードがあります-「ポリシー」は「場所」で構成され、各「場所」には「アドレス」が含まれています。「住所」には、空間をサポートするための緯度/経度もあります。
double latitude, longitude;
@Indexed(indexType = POINT, indexName = "LAT_LONG")
String wkt;
public void setLatLong(String lat, String lon){
this.latitude = Double.parseDouble(lat);
this.longitude = Double.parseDouble(lon);
this.wkt = String.format("POINT( %f %f )", longitude, latitude); }
Spring Data を使用しています。ポリシーを保存すると、オブジェクト グラフ全体が永続化されます。1 つの「ポリシー」のみが追加されます エラーが表示されます 緯度/経度を確認しましたが、両方のアドレスで異なります 1 番目のアドレス - 26.716125,-80.049147
Caused by: java.lang.IllegalArgumentException: Index with the same name but different config exists!
at org.neo4j.rest.graphdb.index.RetrievedIndexInfo.checkConfig(RetrievedIndexInfo.java:54)
at org.neo4j.rest.graphdb.index.RestIndexManager.checkIndex(RestIndexManager.java:56)
at org.neo4j.rest.graphdb.index.RestIndexManager.forNodes(RestIndexManager.java:74)
at org.neo4j.rest.graphdb.ExecutingRestAPI.createIndex(ExecutingRestAPI.java:167)
at org.neo4j.rest.graphdb.RestAPIFacade.createIndex(RestAPIFacade.java:249)
at org.springframework.data.neo4j.rest.SpringRestGraphDatabase.createIndex(SpringRestGraphDatabase.java:108)
at org.springframework.data.neo4j.support.index.IndexProviderImpl.createIndex(IndexProviderImpl.java:93)
at org.springframework.data.neo4j.support.index.IndexProviderImpl.getIndex(IndexProviderImpl.java:70)
at org.springframework.data.neo4j.support.index.IndexProviderImpl.getIndex(IndexProviderImpl.java:110)
at org.springframework.data.neo4j.support.Neo4jTemplate.getIndex(Neo4jTemplate.java:650)
at org.springframework.data.neo4j.fieldaccess.IndexingPropertyFieldAccessorListenerFactory$IndexingPropertyFieldAccessorListener.valueChanged(IndexingPropertyFieldAccessorListenerFactory.java:77)
` デバッガーをステップ実行すると、この行が 2 回目のインデックスの作成を引き起こしていることがわかりました。
org.springframework.data.neo4j.support.index.IndexProviderImpl
final boolean useExistingIndex = indexType == null;