Числовой индекс при пакетной вставке в Neo4j - PullRequest
1 голос
/ 08 августа 2011

Я использую пакетную вставку узлов и отношений в графовую базу данных Neo4j. Все работает, включая индекс по нескольким свойствам ([String] name, [int] id). Однако, когда я пытаюсь запросить индекс по свойству "id" по диапазону, он не возвращает результатов.

Проблема, как я понял из не пакетного примера , заключается в том, что я не могу предоставить числовое значение ValueContext для BatchInserterIndex следующим образом:

Map<String, Object> properties = new HashMap<String, Object>(2);

properties.put("name", urs.getString(1));

// I can do this:
properties.put("id", urs.getInt(2));

// But not this (throws an "invalid type" exception):
// properties.put("id", new ValueContext( urs.getInt(2) ).indexNumeric());

long node_id = inserter.createNode(properties);
index.add(node_id, properties);

Я не нашел документации относительно числовой индексации при пакетной вставке.

Код запроса следующий:

IndexManager index = gdb.index();
Index<Node> people = index.forNodes("people");
IndexHits<Node> hits = people.query(
    QueryContext.numericRange("id", min_id, max_id)
  );

Можно ли вообще добавить числовой индекс в операции пакетной вставки, чтобы я мог затем запрашивать значения по диапазону?

Спасибо.


Редактировать

Что я делал неправильно, я пытался передать ту же карту свойств createNode() и index.add(). Первый падал, потому что ему не нужно ValueContext и он этого не понимает. Поэтому обязательно передайте в эти методы различные карты свойств и включите в числовое значение ValueContext значение, предназначенное для index.add:

Long value = 1L;

long node_id = inserter.createNode(
  MapUtil.map("id", value, "other_prop", other_value));

index.add(node_id,
  MapUtil.map("id", ValueContext.numeric( value ), "other_prop", other_value));

1 Ответ

0 голосов
/ 09 августа 2011

Какую версию neo4j вы используете?Работает в последней версии

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...