mirror of
https://github.com/hwchase17/langchain.git
synced 2025-07-31 08:32:32 +00:00
Update neo4j vector procedures (#26775)
This commit is contained in:
parent
870bd42b0d
commit
446144e7c6
@ -444,6 +444,18 @@ class Neo4jVector(VectorStore):
|
||||
embedding: Any embedding function implementing
|
||||
`langchain.embeddings.base.Embeddings` interface.
|
||||
distance_strategy: The distance strategy to use. (default: COSINE)
|
||||
search_type: The type of search to be performed, either
|
||||
'vector' or 'hybrid'
|
||||
node_label: The label used for nodes in the Neo4j database.
|
||||
(default: "Chunk")
|
||||
embedding_node_property: The property name in Neo4j to store embeddings.
|
||||
(default: "embedding")
|
||||
text_node_property: The property name in Neo4j to store the text.
|
||||
(default: "text")
|
||||
retrieval_query: The Cypher query to be used for customizing retrieval.
|
||||
If empty, a default query will be used.
|
||||
index_type: The type of index to be used, either
|
||||
'NODE' or 'RELATIONSHIP'
|
||||
pre_delete_collection: If True, will delete existing data if it exists.
|
||||
(default: False). Useful for testing.
|
||||
|
||||
@ -581,7 +593,7 @@ class Neo4jVector(VectorStore):
|
||||
|
||||
self.query(
|
||||
f"MATCH (n:`{self.node_label}`) "
|
||||
"CALL { WITH n DETACH DELETE n } "
|
||||
"CALL (n) { DETACH DELETE n } "
|
||||
"IN TRANSACTIONS OF 10000 ROWS;"
|
||||
)
|
||||
# Delete index
|
||||
@ -753,18 +765,14 @@ class Neo4jVector(VectorStore):
|
||||
to create a new vector index in Neo4j.
|
||||
"""
|
||||
index_query = (
|
||||
"CALL db.index.vector.createNodeIndex("
|
||||
"$index_name,"
|
||||
"$node_label,"
|
||||
"$embedding_node_property,"
|
||||
"toInteger($embedding_dimension),"
|
||||
"$similarity_metric )"
|
||||
f"CREATE VECTOR INDEX {self.index_name} IF NOT EXISTS "
|
||||
f"FOR (m:`{self.node_label}`) ON m.`{self.embedding_node_property}` "
|
||||
"OPTIONS { indexConfig: { "
|
||||
"`vector.dimensions`: toInteger($embedding_dimension), "
|
||||
"`vector.similarity_function`: $similarity_metric }}"
|
||||
)
|
||||
|
||||
parameters = {
|
||||
"index_name": self.index_name,
|
||||
"node_label": self.node_label,
|
||||
"embedding_node_property": self.embedding_node_property,
|
||||
"embedding_dimension": self.embedding_dimension,
|
||||
"similarity_metric": DISTANCE_MAPPING[self._distance_strategy],
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user