Как сделать выборочный полнотекстовый индекс для neo4j в рамках лампочки для Python?

Джеймс Тронтон приводит отличный пример того, как настроить лампочки для использования полнотекстового индекса в качестве индекса по умолчанию для всех полей neo4j здесь: https://gist.github.com/espeed/3025438

Однако есть ли способ вручную управлять полнотекстовыми индексами, чтобы они охватывали только некоторые свойства на некоторых типах узлов? Если да, то как это делается?


person chiffa    schedule 21.08.2014    source источник
comment
Пока кажется, что добавление Graph.build_proxy(foo, FulltextIndex) позволяет построить полнотекстовый индекс для определенного типа узла. Можно ли сделать то же самое для конкретного свойства?   -  person chiffa    schedule 23.08.2014


Ответы (1)


Смотрите мой ответ о том, как сделать выборочную индексацию в лампочках без моделей...

И если вы не хотите использовать FulltextIndex в качестве индекса по умолчанию (предположительно из соображений производительности), вы можете вручную put индексировать значения:

>>> from bulbs.neo4jserver import Graph, FulltextIndex
>>> from bulbs.element import Vertex
>>> index_name="fulltext_vertex"
>>> g = Graph()
>>> g.vertices.fulltext = g.factory.get_index(Vertex, FulltextIndex, index_name) 
>>> james = g.vertices.create(name="James Thornton", city="Dallas")
>>> g.vertices.fulltext.put(james.eid, name=james.name)
>>> vertices = g.vertices.fulltext.query(name="James")
>>> vertices.next()

Видеть...

А чтобы автоматизировать поведение полнотекстового индексирования, не делая полнотекстовый индекс индексом по умолчанию, используйте Bulbs Model и создайте пользовательский объект Graph.

Смотрите мой ответ о том, как настроить модели лампочек...

person espeed    schedule 26.08.2014
comment
Спасибо. Я немного запутался в параметрах, которые нужно указать для метода инициализации FulltextIndex, и нигде не мог их найти. - person chiffa; 26.08.2014