向量索引

节点向量索引在 Neo4j 5.11 中作为公开测试版发布,并在 Neo4j 5.13 中普遍可用。

向量索引通过将节点或属性表示为多维空间中的向量来启用相似性搜索和复杂的分析查询。

以下资源提供了使用 Neo4j 中的 LLM 和向量索引的动手教程

Neo4j 向量索引由 Apache Lucene 索引和搜索库提供支持。[1]

示例图

此页面上的示例使用 Neo4j 电影推荐 数据集,重点关注 Movie 节点的 plotembedding 属性。embedding 属性包含 plottitle 属性组合的 1536 维向量嵌入。

vector index graph

该图包含 28863 个节点和 332522 个关系。

要重新创建该图,请将此 转储文件 下载并导入到空的 Neo4j 数据库(运行版本 5.13 或更高版本)。转储文件可以同时用于 Aura本地 实例。

用于加载数据集的转储文件包含由 OpenAI 使用模型 text-embedding-ada-002 生成的嵌入。

Neo4j 中的向量和嵌入

向量索引允许您从大型数据集中查询向量嵌入。嵌入是数据对象的数值表示,例如文本、图像或文档。文本中的每个单词或标记通常表示为高维向量,其中每个维度表示单词含义的某个方面。

特定数据对象的嵌入可以通过专有(例如 Vertex AIOpenAI)和开源(例如 sentence-transformers)嵌入生成器创建,这些生成器可以生成具有 256、768、1536 和 3072 等维度的向量嵌入。在 Neo4j 中,向量嵌入存储为节点或关系上的 LIST<INTEGER | FLOAT> 属性。

有关如何生成嵌入并将其存储为属性的信息,请参阅

例如,电影《教父》具有以下 plot"The aging patriarch of an organized crime dynasty transfers control of his clandestine empire to his reluctant son." 这是其 1536 维 embedding 属性,其中 LIST 中的每个元素表示情节含义的特定方面

[0.005967312026768923, -0.03817005082964897, 0.0014667075593024492, -0.03868866711854935, -0.006505374796688557, 0.020900176838040352, -0.0027551413513720036, -0.0024731445591896772, -0.03734026849269867, -0.02228747308254242, 0.028783122077584267, 0.017905177548527718, 0.011396560817956924, 0.014235977083444595, 0.023143187165260315, -0.014184115454554558, 0.029846282675862312, -0.011928141117095947, 0.018838683143258095, -0.0019172541797161102, 0.0033483069855719805, 0.009497134014964104, -0.03516208380460739, 0.0021441481076180935, 0.002657901030033827, 0.0030760341323912144, 0.004255882930010557, -0.020809419453144073, 0.02358401007950306, -0.013808120042085648, 0.01064456906169653, -0.006975369527935982, 0.007318951655179262, -0.013872946612536907, 0.005905726458877325, -0.010689947754144669, 0.0020225979387760162, -0.016245609149336815, -0.00038815077277831733, -0.007163367234170437, 0.027668101713061333, 0.007215228863060474, -0.009380445815622807, -0.02956104464828968, -0.000863007502630353, 0.012142069637775421, 0.0012957267463207245, -0.027953339740633965, -0.016414159908890724, 0.008453421294689178, -0.0010777463903650641, 0.03311355784535408, -0.013639570213854313, -0.052457891404628754, 0.0010242642601951957, 0.0034390646032989025, -0.01049546804279089, 0.006456754636019468, 0.003970644902437925, -0.011629937216639519, 0.005280147306621075, -0.023402493447065353, -0.014689764939248562, -0.007623638026416302, -0.002453696448355913, 0.02290981076657772, 0.0017989451298490167, 0.0013427261728793383, -0.001776255783624947, -0.002414800226688385, 0.04833490028977394, 0.031142819672822952, -0.0033013075590133667, 0.017879245802760124, 0.0070077828131616116, -0.016154851764440536, -0.005772831384092569, 0.019875913858413696, -0.018008900806307793, 0.012764407321810722, 0.0055232481099665165, -0.027901478111743927, -0.0034909259993582964, 0.0307279285043478, 0.006472961511462927, 0.008861830458045006, -0.01802186481654644, 0.018281172960996628, -0.014223011210560799, -0.00018313586770091206, 0.0026352116838097572, 0.0006754148053005338, 0.014975002966821194, 0.024361930787563324, -0.017166150733828545, 0.0028880364261567593, 0.011824417859315872, 0.01710132323205471, -0.0005003822734579444, -0.018890544772148132, -0.002192768268287182, -0.0018264965619891882, 0.011033530347049236, -0.009095207788050175, -0.022689398378133774, -0.004281813744455576, 0.007092057727277279, -0.015247276052832603, 0.024115590378642082, 0.002996621420606971, -0.02834230102598667, 0.030546413734555244, 0.02350621670484543, -0.020511215552687645, 0.010190781205892563, -0.016582708805799484, 0.028238577768206596, -0.011967036873102188, 0.011623455211520195, -0.02797926962375641, 0.0026254875119775534, 0.018307102844119072, 0.0038701631128787994, -0.03850715234875679, 0.006246067117899656, -0.0006312514888122678, 0.010352848097682, -0.02358401007950306, -0.026708664372563362, -0.002863726345822215, 0.035862214863300323, 0.009860164485871792, -0.01726987399160862, 0.004275330808013678, -0.02663087099790573, 0.009140586480498314, -0.013872946612536907, 0.019136887043714523, -0.020835351198911667, -0.0250879917293787, 0.03044269047677517, 0.026280807331204414, -0.013406192883849144, 0.006683648563921452, -0.01216800045222044, 0.007824601605534554, 0.031505849212408066, 0.023726629093289375, 0.0294832531362772, -0.013678465969860554, 0.033891480416059494, 0.009211895987391472, 0.017088359221816063, -0.02183368429541588, 0.01847565360367298, 0.004644844215363264, -0.009834233671426773, -0.011344699189066887, -0.0006725785788148642, 0.00012691882147919387, 0.015338033437728882, 0.025736261159181595, -0.003967403434216976, -0.007312469184398651, -0.01312743779271841, 0.02350621670484543, -0.0006843284936621785, -0.011785522103309631, 0.006570201832801104, -0.004187814891338348, -0.0070013003423810005, 0.0165178831666708, -0.004537879955023527, 0.022715330123901367, -0.0025120405480265617, 0.025580676272511482, 0.005053253378719091, -0.0020063910633325577, -0.039285074919462204, -0.001816772622987628, 0.0007224142318591475, 0.0161029901355505, 0.04086684808135033, 0.03536953032016754, 0.009626788087189198, -0.023571044206619263, -0.009607339277863503, 0.011085391975939274, 0.020835351198911667, -0.0009027139167301357, -0.007584741804748774, 0.016958704218268394, 0.011130770668387413, -0.016829051077365875, -0.6712950468063354, -0.006511857267469168, -0.024854615330696106, -0.02663087099790573, -0.00008933950448408723, 0.0061779990792274475, 0.004605947993695736, 0.013231161050498486, -0.020187081769108772, 0.00798666849732399, -0.001847565290518105, 0.04086684808135033, 0.007519915234297514, 0.0040808506309986115, -0.034021131694316864, -0.01997963711619377, -0.004972219467163086, -0.023220978677272797, 0.012129104696214199, 0.0018329792656004429, -0.011649386025965214, 0.028446022421121597, -0.0010356089333072305, -0.006223377771675587, 0.021211346611380577, 0.004006299655884504, 0.021937407553195953, -0.02927580662071705, -0.01129283756017685, -0.009296170435845852, -0.01864420250058174, 0.02717541716992855, -0.0003555347793735564, 0.0021700789220631123, 0.048360832035541534, -0.002277043182402849, -0.009049829095602036, 0.033969271928071976, 0.004557327833026648, 0.018916476517915726, -0.000779542897362262, -0.00638544512912631, 0.022183749824762344, -0.012757924385368824, -0.027149485424160957, -0.012278205715119839, 0.0238303504884243, -0.02963883802294731, 0.005218561738729477, -0.004434156697243452, 0.013665501028299332, -0.0024520757142454386, 0.002124700229614973, -0.007273572962731123, -0.0035654769744724035, -0.0028621056117117405, 0.020640870556235313, 0.01091684214770794, -0.0006867594784125686, -0.011694764718413353, 0.011215046048164368, 0.016504917293787003, 0.00827838946133852, -0.0044471221044659615, 0.010676982812583447, 0.027771824970841408, -0.0133802630007267, 0.029820352792739868, 0.008349698968231678, -0.014573076739907265, -0.009017415344715118, 0.011655868031084538, -0.0061066895723342896, -0.013082059100270271, 0.004353123251348734, 0.00672254478558898, 0.01773662678897381, 0.012433790601789951, 0.023843316361308098, 0.015221345238387585, -0.0046221548691391945, -0.00026214358513243496, -0.016582708805799484, 0.016504917293787003, 0.028005201369524002, 0.005516765173524618, -0.04309689253568649, 0.013743292540311813, -0.0064308238215744495, -0.007176332641392946, 0.01911095716059208, 0.00446332897990942, -0.012971853837370872, -0.016919808462262154, 0.010048162192106247, 0.0032769974786788225, -0.021548446267843246, 0.001816772622987628, 0.01856641098856926, -0.04804966226220131, 0.007286538369953632, -0.007299503777176142, -0.014080392196774483, 0.008952588774263859, 0.023908143863081932, 0.012932957150042057, -0.008433973416686058, 0.012783855199813843, 0.0430709607899189, -0.01015836838632822, 0.03534360229969025, -0.007584741804748774, -0.016453055664896965, -0.005720969755202532, -0.014871280640363693, -0.026540113613009453, 0.005228285677731037, 0.0004019264888484031, 0.005931657273322344, -0.02533433400094509, -0.018825719133019447, 0.0023353875149041414, 0.0014059323584660888, -0.02020004764199257, 0.022481953725218773, 0.034980569034814835, -0.02709762565791607, -0.022974636405706406, -0.025023166090250015, 0.00641785841435194, -0.00019822835747618228, -0.004845807328820229, 0.0003723492263816297, -0.010132437571883202, 0.01498796883970499, 0.001948046963661909, -0.0020161152351647615, -0.008842382580041885, 0.0223652645945549, -0.013574742712080479, -0.002369421534240246, 0.003275376744568348, 0.005879795644432306, 0.005789037793874741, 0.006359514314681292, -0.03549918532371521, 0.003118171589449048, -0.026993902400135994, -0.01614188589155674, 0.011578075587749481, 0.0008524731383658946, -0.013367297127842903, 0.004194297362118959, 0.019331367686390877, 0.006152068264782429, -0.015208380296826363, -0.0018005658639594913, -0.015714028850197792, -0.01681608520448208, -0.028990568593144417, 0.010676982812583447, 0.024595309048891068, -0.045560311526060104, -0.0009262136882171035, 0.014845349825918674, -0.020887212827801704, 0.015739960595965385, 0.011727177537977695, 0.0012560202740132809, -0.023052429780364037, 0.0014245701022446156, -0.013062611222267151, -0.011299320496618748, 0.022274507209658623, 0.011338216252624989, -0.007908876053988934, 0.010339883156120777, -0.006132620386779308, 0.01247916929423809, -0.007947771809995174, -0.0025347298942506313, -0.011416008695960045, 0.011027047410607338, 0.004521673079580069, 0.04880165681242943, 0.0012543996563181281, 0.02115948498249054, 0.0165178831666708, -0.025373229756951332, 0.026125222444534302, -0.0031262750271707773, 0.007669016718864441, 0.003821542952209711, -0.021561412140727043, 0.008187631145119667, 0.02358401007950306, 0.02249491773545742, 0.015247276052832603, -0.004560569301247597, 0.030753860250115395, 0.031090958043932915, -0.021457688882946968, 0.027694031596183777, -0.004823117982596159, 0.0049171168357133865, -0.018346000462770462, -0.0030355174094438553, -0.011176149360835552, 0.024102624505758286, 0.006923507899045944, 0.010009266436100006, -0.00510187353938818, 0.0007916979375295341, -0.004722636193037033, 0.019914809614419937, 0.026190048083662987, -0.013289504684507847, 0.006346548907458782, -0.015415825881063938, -0.026734594255685806, 0.003623821074143052, 0.005325525999069214, -0.003922024741768837, -0.00640813447535038, -0.014624938368797302, -0.0065021333284676075, 0.007435640320181847, -0.002808623481541872, 0.010138919577002525, -0.033813685178756714, -0.0032008260022848845, 0.01614188589155674, -0.018994268029928207, 0.008135770447552204, -0.008596041239798069, -0.015662167221307755, 0.004310985561460257, -0.014663834124803543, 0.014962038025259972, -0.03479905426502228, 0.013114472851157188, 0.01341915875673294, 0.05092797800898552, -0.011908693239092827, 0.005332008935511112, -0.013367297127842903, 0.02501020021736622, -0.00029678543796762824, -0.02454344742000103, 0.003152205841615796, -0.015454721637070179, 0.010028714314103127, -0.02102983184158802, -0.0032624113373458385, 0.03583628311753273, -0.015026864595711231, 0.00672254478558898, 0.000010907877367571928, 0.019875913858413696, 0.020161151885986328, 0.014054462313652039, -0.005675591062754393, -0.009224860928952694, 0.014793488197028637, 0.03687351569533348, -0.005442214198410511, 0.005633453372865915, -0.0030436208471655846, -0.012615305371582508, -0.009075759910047054, 0.017192082479596138, -0.002220319816842675, 0.005798762198537588, -0.0007568534929305315, 0.010378778912127018, 0.005908967927098274, -0.0158825796097517, 0.0088812792673707, 0.007766257040202618, -0.0030209312681108713, -0.013561777770519257, -0.035395462065935135, 0.022391194477677345, -0.0027049004565924406, 0.004748567007482052, -0.020433424040675163, -0.00028706141165457666, -0.005092149134725332, -0.018371930345892906, 0.006009449250996113, -0.00645027169957757, 0.015286171808838844, -0.012343033216893673, -0.008628454059362411, -0.010605673305690289, 0.009192448109388351, 0.007500466890633106, -0.013535846956074238, 0.003831267124041915, -0.02956104464828968, 0.0009724028059281409, 0.0034585127141326666, -0.00004074468961334787, -0.025139853358268738, 0.012278205715119839, 0.023519182577729225, -0.012913509272038937, -0.006301170215010643, 0.0037178201600909233, 0.004716153722256422, -0.017905177548527718, 0.009769407100975513, -0.019746258854866028, -0.011675315909087658, 0.007409709505736828, -0.022676432505249977, -0.013406192883849144, 0.003922024741768837, 0.03925914317369461, -0.011325251311063766, -0.014611972495913506, -0.022404160350561142, -0.03311355784535408, 0.0024634203873574734, 0.1057974249124527, 0.014145219698548317, 0.025956671684980392, 0.006878129206597805, -0.019914809614419937, -0.019162818789482117, -0.009231343865394592, -0.04423784464597702, 0.012018898501992226, -0.00921837892383337, 0.02408965863287449, -0.026501217857003212, 0.020225977525115013, 0.005014357157051563, 0.02053714729845524, 0.014521215111017227, -0.002670866437256336, -0.020433424040675163, -0.0015372068155556917, -0.031168751418590546, 0.0051213214173913, 0.006865163799375296, 0.010048162192106247, 0.003795612370595336, -0.009749959222972393, -0.024063728749752045, 0.026449356228113174, 0.00967864878475666, -0.009049829095602036, -0.012284688651561737, -0.02475089207291603, 0.0034844432957470417, -0.00928320549428463, 0.011772556230425835, -0.01811262220144272, -0.01918874867260456, 0.009043346159160137, 0.023843316361308098, 0.02580108679831028, 0.005980277433991432, 0.029327668249607086, -0.008103356696665287, 0.008083908818662167, -0.005490834359079599, 0.021146519109606743, -0.0023499734234064817, -0.03298390284180641, 0.005283388774842024, -0.00043352958164177835, -0.024271173402667046, 0.03181701898574829, -0.000028944177756784484, -0.004479535389691591, -0.002066355897113681, 0.017995934933423996, -0.012783855199813843, 0.013859981670975685, -0.006615580525249243, -0.0008403180981986225, 0.025489918887615204, -0.01789221167564392, -0.03189481049776077, 0.00028949242550879717, -0.03251715004444122, 0.03588814660906792, -0.03500650078058243, -0.007869980297982693, -0.024361930787563324, 0.00451519014313817, -0.018177449703216553, 0.020627904683351517, 0.003249445930123329, 0.010962220840156078, -0.005299595184624195, 0.048023734241724014, -0.0033094107639044523, 0.012971853837370872, -0.02290981076657772, 0.017918141558766365, -0.016245609149336815, -0.013179299421608448, -0.020589008927345276, 0.0037469922099262476, -0.029327668249607086, -0.007383778691291809, 0.013017232529819012, 0.006327101029455662, -0.02689017914235592, -0.004385536536574364, 0.005789037793874741, -0.005597798619419336, -0.004152160137891769, 0.012719028629362583, -0.008220044896006584, -0.01702353172004223, -0.011506766080856323, 0.0042980206198990345, 0.0018702547531574965, -0.0032964455895125866, 0.007267090491950512, -0.009581409394741058, -0.0058182100765407085, -0.005429248791188002, -0.008829417638480663, -0.0030403793789446354, -0.01194110605865717, -0.002591453492641449, 0.005756624508649111, -0.01618078351020813, -0.009821268729865551, -0.00021210535487625748, -0.01768476516008377, -0.0005562954465858638, -0.017451388761401176, -0.015545479021966457, 0.02332470193505287, 0.015960371121764183, 0.02208002656698227, 0.01369143184274435, -0.014495284296572208, -0.007701430004090071, -0.0005567006301134825, 0.027590308338403702, 0.05188741534948349, -0.023609939962625504, -0.017957039177417755, 0.015999266877770424, -0.020900176838040352, 0.003038758644834161, 0.021042795851826668, -0.009814785793423653, 0.0014083633432164788, 0.010897394269704819, -0.0167253278195858, -0.020135220140218735, -0.005273664370179176, -0.009788854978978634, -0.002986897248774767, -0.008764590136706829, -0.006729027256369591, -0.018449721857905388, -0.009166517294943333, -0.002651418326422572, 0.008245975710451603, 0.0034358231350779533, -0.028757192194461823, 0.01511762198060751, -0.008544179610908031, 0.005344973877072334, 0.013924808241426945, -0.003299686824902892, -0.04143732413649559, -0.0008403180981986225, 0.010949255898594856, -0.013600673526525497, -0.03448788449168205, -0.007863497361540794, -0.01809965819120407, -0.00444063963368535, 0.004920358303934336, 0.0330357663333416, -0.008816451765596867, 0.006683648563921452, 0.00823301076889038, -0.015947405248880386, 0.02608632668852806, 0.0037243026308715343, -0.007623638026416302, -0.028031131252646446, 0.027123555541038513, 0.01843675784766674, 0.016712361946702003, 0.040374163538217545, -0.0021538722794502974, 0.01885164901614189, -0.011740143410861492, 0.017490284517407417, -0.0004517621418926865, -0.00034439266892150044, -0.026190048083662987, -0.021729961037635803, 0.0020209772046655416, -0.014521215111017227, -0.01467679999768734, 0.002505557844415307, -0.01061863824725151, 0.015623271465301514, -0.010087057948112488, -0.0031748951878398657, 0.01631043665111065, 0.016375262290239334, -0.013257091864943504, 0.010741809383034706, -0.012932957150042057, -0.002484489232301712, 0.0027324517723172903, 0.00897203665226698, -0.004793945699930191, 0.0043466403149068356, -0.0020047705620527267, 0.0021538722794502974, 0.021263208240270615, -0.0269679706543684, -0.024115590378642082, -0.0025833500549197197, 0.030598275363445282, 0.002772968728095293, 0.01584368385374546, 0.006981851998716593, -0.0037113374564796686, -0.01273199450224638, -0.026280807331204414, -0.02182071842253208, -0.049527715891599655, 0.02195037342607975, -0.008628454059362411, -0.004353123251348734, 0.01064456906169653, -0.009698097594082355, -0.04094463959336281, 0.0238303504884243, 0.0034649954177439213, 0.032802388072013855, 0.0002048123424174264, 0.022507883608341217, 0.03770329803228378, -0.010346366092562675, 0.0028588641434907913, 0.026410460472106934, 0.019085025414824486, 0.008848865516483784, 0.015830717980861664, -0.004469811450690031, 0.013808120042085648, -0.012031864374876022, -0.02099093608558178, -0.006054827943444252, -0.045638103038072586, -0.024050762876868248, 0.014417491853237152, 0.01218744833022356, 0.0032413427252322435, -0.013302470557391644, -0.0003156257444061339, 0.006942956242710352, 0.00542600778862834, -0.0034358231350779533, 0.022067060694098473, -0.013847015798091888, -0.026942040771245956, -0.0334506556391716, -0.01835896447300911, -0.0021036313846707344, -0.001962633104994893, 0.012615305371582508, -0.0186053067445755, 0.01572699472308159, -0.02542509138584137, 0.019422125071287155, -0.013950739055871964, -0.002110114088281989, 0.02052418142557144, -0.0014197081327438354, 0.0010485743405297399, -0.004372571129351854, 0.0069299908354878426, -0.005105114541947842, -0.003756716148927808, -0.015960371121764183, 0.025554746389389038, 0.003516856813803315, 0.005951105151325464, 0.009736993350088596, 0.043459922075271606, -0.008952588774263859, 0.021315069869160652, -0.011318768374621868, -0.016375262290239334, -0.004560569301247597, -0.026656802743673325, 0.004842565860599279, 0.0004894427256658673, -0.023635871708393097, 0.007448605261743069, -0.008965553715825081, 0.0026092808693647385, -0.01999260112643242, -0.007811635732650757, 0.012142069637775421, -0.01375625841319561, -0.02102983184158802, -0.006806819699704647, 0.015869613736867905, -0.0074032265692949295, -0.001892944099381566, -0.0037016132846474648, -0.005322284530848265, 0.03293204307556152, -0.014430457726120949, 0.0418262854218483, -0.012641236186027527, 0.018216345459222794, -0.028290439397096634, 0.02576219104230404, 0.008433973416686058, 0.013963703997433186, 0.030598275363445282, -0.01225227490067482, 0.012051312252879143, 0.0014553628861904144, -0.008822934702038765, 0.01100111659616232, 0.009860164485871792, -0.004388778004795313, -0.01685498282313347, 0.01091035921126604, -0.00033223762875422835, -0.007850532419979572, -0.0006320617976598442, 0.002114976057782769, -0.007532880175858736, 0.01710132323205471, 0.015610306523740292, -0.009036863222718239, 0.008200597018003464, 0.012174483388662338, 0.00447305291891098, 0.0186053067445755, -0.019253576174378395, 0.010638087056577206, -0.02086128108203411, 0.022404160350561142, 0.010437123477458954, 0.0006920266896486282, -0.02128913812339306, -0.009296170435845852, -0.004106780979782343, 0.044808320701122284, -0.013782189227640629, -0.003750233445316553, -0.01181145291775465, 0.02764216996729374, 0.011960554867982864, -0.005043528974056244, 0.006155309733003378, -0.015584375709295273, 0.012433790601789951, -0.021600307896733284, -0.04314875230193138, -0.01214855257421732, -0.024776823818683624, 0.039077628403902054, 0.016271540895104408, 0.000348039175150916, -0.01511762198060751, 0.0014926382573321462, -0.04068533331155777, -0.0020290804095566273, -0.006904060021042824, 0.02099093608558178, 0.017049461603164673, -0.006981851998716593, 0.007364330347627401, 0.007416191976517439, 0.00766253424808383, 0.02153548039495945, -0.002995000686496496, 0.02157437615096569, -0.011312286369502544, -0.009685131721198559, 0.00414891866967082, -0.009672166779637337, -0.01308854203671217, -0.003380720503628254, -0.003168412484228611, 0.013769223354756832, -0.012615305371582508, 0.007973702624440193, 0.001315985107794404, -0.006139102857559919, -0.028212646022439003, 0.0004906582762487233, 0.0006340876570902765, 0.013289504684507847, -0.010359331034123898, -0.02956104464828968, 0.0263456329703331, 0.02621597982943058, 0.005357939284294844, -0.022754225879907608, -0.009393410757184029, 0.007053161505609751, -0.018086692318320274, -0.0012552099069580436, 0.003977127373218536, -0.010839049704372883, -0.01584368385374546, 0.007753291632980108, 0.005951105151325464, 0.02478978969156742, -0.00858955830335617, 0.007280055433511734, 0.013257091864943504, -0.0000065713156800484285, 0.007234676741063595, -0.00413919473066926, -0.01467679999768734, -0.018333034589886665, -0.017658835276961327, -0.01681608520448208, 0.005108356010168791, -0.007630120497196913, 0.008479352109134197, -0.02771996334195137, 0.004567051772028208, -0.018579376861453056, -0.003983610309660435, -0.0023110774345695972, 0.023065393790602684, 0.04281165450811386, -0.015273206867277622, -0.006696613971143961, 0.002272181212902069, -0.008356180973351002, -0.014508250169456005, -0.0066090975888073444, 0.00827838946133852, -0.016906842589378357, 0.003750233445316553, -0.008524730801582336, -0.0022802846506237984, -0.005156976170837879, -0.009633270092308521, -0.035940006375312805, -0.004323950968682766, 0.027771824970841408, 0.19261354207992554, -0.014547145925462246, -0.006657717749476433, 0.013808120042085648, -0.021340999752283096, 0.011869796551764011, 0.024115590378642082, 0.014080392196774483, 0.0023856281768530607, 0.0005133476224727929, -0.016206713393330574, 0.01723097823560238, 0.008012599311769009, 0.0019723570439964533, 0.006560477428138256, -0.040996503084897995, -0.010657534934580326, 0.00037032339605502784, -0.027875546365976334, -0.011727177537977695, -0.00768198212608695, -0.007299503777176142, -0.011202080175280571, -0.01939619518816471, 0.039622172713279724, -0.011668833903968334, -0.015830717980861664, 0.016919808462262154, 0.03207632899284363, 0.015960371121764183, -0.01093629002571106, -0.016842016950249672, -0.008336733095347881, -0.013244125992059708, -0.011999450623989105, -0.020122256129980087, -0.007422674912959337, -0.02501020021736622, -0.008505282923579216, -0.005526489112526178, -0.0011830900330096483, 0.01773662678897381, 0.010709396563470364, -0.007267090491950512, 0.015999266877770424, 0.02604742906987667, -0.013315435498952866, 0.01621967926621437, -0.02082238532602787, -0.01689387857913971, -0.0439007468521595, -0.03358031064271927, 0.000994281843304634, 0.03726247698068619, -0.02208002656698227, 0.000011990435268671717, 0.006949438713490963, 0.020433424040675163, 0.00515373470261693, -0.031298406422138214, 0.0031116888858377934, 0.015701064839959145, -0.02813485451042652, -0.007377295754849911, 0.007461570668965578, 0.03985555097460747, -0.010975186713039875, -0.025697365403175354, 0.0397258959710598, -0.026319703087210655, -0.0030403793789446354, -0.010067610070109367, -0.002486109733581543, -0.0088812792673707, 0.0017438423819839954, -0.001923736883327365, 0.017827384173870087, 0.006220136769115925, 0.010255607776343822, 0.001199296792037785, -0.01772366091609001, 0.035136155784130096, -0.0061066895723342896, -0.010735327377915382, -0.010651051998138428, -0.026151152327656746, 0.006981851998716593, 0.006622062996029854, -0.010048162192106247, -0.0009124379721470177, -0.00419105589389801, -0.019668467342853546, 0.00012296844215597957, 0.004894427489489317, 0.006852198392152786, 0.010437123477458954, 0.005908967927098274, 0.0038247844204306602, -0.008103356696665287, -0.006456754636019468, -0.028653468936681747, 0.018216345459222794, 0.032205980271101, 0.00022101905778981745, -0.029664767906069756, -0.008155218325555325, 0.03871459513902664, 0.03394334018230438, 0.005860347766429186, -0.013600673526525497, -0.016958704218268394, 0.006372479721903801, 0.0012543996563181281, -0.01911095716059208, -0.010437123477458954, 0.008356180973351002, -0.012855164706707, -0.008472870104014874, 0.019370263442397118, -0.029457321390509605, 0.0034487885423004627, -0.015415825881063938, -0.00047364120837301016, 0.008887761272490025, -0.0020015290938317776, 0.010501950047910213, -0.007500466890633106, -0.0017470837337896228, 0.01717911660671234, -0.024063728749752045, 0.026734594255685806, -0.024556411430239677, 0.0013573121977970004, -0.00010007645323639736, -0.00450546620413661, 0.007513432297855616, 0.027201347053050995, 0.003426099196076393, -0.022183749824762344, 0.002813485451042652, 0.008064460940659046, 0.002243009163066745, 0.009899060241878033, 0.010988151654601097, -0.004790704697370529, -0.004638361278921366, 0.006025656126439571, -0.010605673305690289, -0.01625857502222061, -0.020342666655778885, -0.016090024262666702, -0.026410460472106934, 0.0121226217597723, -0.009406376630067825, 0.0023759042378515005, -0.0273828636854887, -0.015260240994393826, -0.004832841921597719, -0.0007702240254729986, 0.01856641098856926, -0.031039098277688026, 0.0073967440985143185, 0.018721995875239372, -0.023026498034596443, -0.008200597018003464, -0.023480286821722984, -0.16450461745262146, 0.025710329413414, 0.01681608520448208, -0.009023898281157017, 0.023428425192832947, -0.022754225879907608, 0.027616240084171295, 0.015234310179948807, -0.009224860928952694, 0.005166700109839439, 0.0008131718495860696, 0.0038507150020450354, -0.03153178095817566, -0.0026757284067571163, 0.003335341578349471, 0.00672254478558898, -0.030546413734555244, 0.036277107894420624, 0.017256908118724823, 0.0010526260593906045, 0.0053125605918467045, -0.02091314271092415, -0.0016555157490074635, -0.0012454859679564834, 0.023467320948839188, 0.009497134014964104, 0.0046351198107004166, 0.005380628630518913, -0.021691065281629562, -0.013062611222267151, -0.048023734241724014, -0.0008427490829490125, 0.017321735620498657, 0.021340999752283096, 0.011740143410861492, 0.012219862081110477, -0.012984818778932095, 0.007020748220384121, -0.015130587853491306, -0.016193747520446777, 0.0071439193561673164, 0.03236156702041626, 0.024997234344482422, 0.01185683161020279, 0.010735327377915382, 0.04636416584253311, 0.014599007554352283, -0.009004450403153896, 0.019383229315280914, -0.009607339277863503, -0.00414891866967082, -0.008336733095347881, -0.019888877868652344, -0.0005830365116707981, 0.02771996334195137, 0.005620488431304693, -0.00701426574960351, 0.013730327598750591, 0.014145219698548317, 0.011331734247505665, -0.021807754412293434, 0.022857949137687683, 0.01593444123864174, -0.0031343784648925066, 0.001282761339098215, -0.028627539053559303, 0.013354332186281681, 0.0034098925534635782, -0.014689764939248562, -0.004784221760928631, -0.015208380296826363, -0.00796722061932087, -0.008693280629813671, -0.02311725541949272, 0.011629937216639519, -0.012323584407567978, -0.03243935853242874, 0.007643085904419422, 0.00766253424808383, 0.0028702090494334698, -0.017412493005394936, 0.026267841458320618, 0.010884428396821022, -0.03448788449168205, 0.004327192436903715, 0.018838683143258095, -0.02228747308254242, -0.014702730812132359, -0.01020374707877636, -0.027694031596183777, 0.006122896447777748, -0.004252641461789608, -0.012686614878475666, -0.008829417638480663, 0.03319134935736656, 0.01789221167564392, 0.021250242367386818, -0.006683648563921452, 0.009412859566509724, -0.02294870652258396, 0.0009659201023168862, -0.008336733095347881, -0.019603639841079712, -0.012116138823330402, 0.009775889106094837, 0.03993334248661995, 0.009892578236758709, 0.017153184860944748, 0.015545479021966457, -0.01288109552115202, -0.020433424040675163, 0.013652535155415535, 0.022170783951878548, 0.024102624505758286, -0.003623821074143052, 0.03230970352888107, 0.01852751523256302, -0.03132433444261551, -0.017218012362718582, 0.011279872618615627, 0.052250444889068604, 0.005604281555861235, 0.010722361505031586, 0.006155309733003378, -0.016362298280000687, 0.0038020950742065907, -0.1179330125451088, 0.0006563718779943883, 0.006923507899045944, 0.010300987400114536, 0.010313952341675758, 0.016128921881318092, 0.010683465749025345, 0.032050397247076035, -0.0040808506309986115, 0.011318768374621868, -0.021016865968704224, -0.05787741392850876, -0.018786821514368057, -0.03155771270394325, 0.010994634591042995, -0.00672254478558898, 0.010605673305690289, -0.029042430222034454, -0.018294138833880424, 0.01147435326129198, -0.0367957204580307, 0.016906842589378357, 0.010385261848568916, -0.006301170215010643, -0.014547145925462246, -0.004356364719569683, -0.03181701898574829, -0.0031505851075053215, 0.004936564713716507, 0.012952405028045177, 0.010398227721452713, -0.018164483830332756, 0.01794407330453396, -0.020977970212697983, -0.0003221084189135581, 0.007617155089974403, 0.0036173383705317974, -0.01026209071278572, 0.037651438266038895, -0.015662167221307755, 0.011156701482832432, -0.014599007554352283, -0.00417160801589489, -0.03412485495209694, 0.010022231377661228, 0.004084091633558273, -0.005659384187310934, -0.0012973473640158772, 0.02266346849501133, -0.015195414423942566, -0.021211346611380577, -0.01056029461324215, -0.008284871466457844, -0.001761669758707285, 0.005711245816200972, 0.009205413050949574, 0.008997967466711998, -0.021470654755830765, -0.02379145473241806, 0.013872946612536907, -0.004845807328820229, -0.016193747520446777, -0.003912300802767277, 0.00304200011305511, -0.002687073079869151, -0.007617155089974403, 0.003983610309660435, -0.028575677424669266, 0.012939440086483955, -0.004434156697243452, -0.020381562411785126, 0.0030338966753333807, -0.022131888195872307, 0.0012187449028715491, -0.020251909270882607, 0.003640027716755867, -0.018449721857905388, 0.008557144552469254, 0.029042430222034454, -0.00807094294577837, -0.025502884760499, -0.025852948427200317, 0.03057234361767769, -0.032205980271101, 0.011779039166867733, 0.007481019012629986, -0.010112988762557507, 0.017114289104938507, 0.011623455211520195, -0.01751621626317501, -0.009341550059616566, -0.005238009616732597, -0.013561777770519257, -0.005001391749829054, -0.014702730812132359, 0.008609006181359291, -0.009568443521857262, 0.00857011042535305, 0.0027049004565924406, 0.009101689793169498, -0.018294138833880424, -0.0010202126577496529, -0.07286538183689117, 0.01214855257421732, -0.011403043754398823, 0.0032656528055667877, 0.0046221548691391945, -0.017568077892065048, 0.019136887043714523, -0.022546779364347458, -0.0037826469633728266, -0.004913875367492437, -0.01572699472308159, 0.034306369721889496, 0.013509916141629219, -0.014158184640109539, -0.011014082469046116, -0.010787188075482845, 0.005027322564274073, 0.002033942611888051, 0.017218012362718582, 0.02478978969156742, -0.010430640541017056, 0.0027437966782599688, 0.00802556425333023, -0.01406742725521326, 0.0038442325312644243, 0.0035038914065808058, -0.003345065750181675, 0.02386924810707569, -0.00384747376665473, -0.012550478801131248, 0.0008500420954078436, -0.012025381438434124, 0.015662167221307755, 0.019914809614419937, 0.029846282675862312, -0.026656802743673325, -0.006203929893672466, -0.011033530347049236, 0.04947585612535477, 0.03575849160552025, -0.007960737682878971, -0.024984268471598625, 0.013548812828958035, -0.02484164945781231, -0.01406742725521326, 0.011681798845529556, -0.022806087508797646, 0.0018378413515165448, 0.030961304903030396, 0.007928323931992054, 0.03251715004444122, 0.010884428396821022, 0.002808623481541872, -0.008466387167572975, 0.02379145473241806, -0.019162818789482117, 0.05357291176915169, -0.0044049848802387714, -0.0040581608191132545, -0.013471020385622978, 0.020718662068247795, 0.00829783733934164, -0.01685498282313347, -0.004100298509001732, -0.000024132808903232217, -0.014482319355010986, -0.03404706344008446, 0.007876462303102016, 0.0011855211341753602, -0.0405556783080101, -0.01225227490067482, -0.006268756929785013, 0.015312102623283863, 0.015299137681722641, 0.013548812828958035, 0.014560110867023468, 0.01471569575369358, -0.002121458761394024, -0.01100111659616232, 0.00015933225222397596, 0.01965550146996975, -0.003769681556150317, -0.02826450765132904, 0.01413225382566452, 0.029198015108704567, 0.048568278551101685, -0.005461662542074919, 0.014274872839450836, 0.0036529931239783764, 0.005160217639058828, 0.0010145402047783136, 0.017243942245841026, -0.006793854292482138, 0.0005344163510017097, 0.01341915875673294, 0.019538814201951027, -0.003721061395481229, -0.01056029461324215, 0.005033805035054684, 0.03562884032726288, -0.004832841921597719, 0.012997783720493317, -0.006443789228796959, -0.015817752107977867, -0.015947405248880386, 0.023208012804389, -0.019590675830841064, -0.0267605260014534, -0.008045012131333351, 0.0018005658639594913, 0.022935740649700165, -0.006323859561234713, -0.0033677550964057446, 0.02027783915400505, -0.020433424040675163, 0.01689387857913971, -0.027019832283258438, -0.040166717022657394, -0.0001858707400970161, 0.009393410757184029, 0.0010169713059440255, 0.00733839999884367, 0.00923782680183649, -0.011007599532604218, 0.022339332848787308, 0.01406742725521326, 0.01659567467868328, -0.021794788539409637, -0.019085025414824486, -0.008245975710451603, 0.016323402523994446, -0.0023759042378515005, -0.0077208783477544785, -0.001962633104994893, 0.0036108556669205427, -0.0008832658641040325, -0.0267605260014534, 0.02873126231133938, -0.022935740649700165, 0.02412855438888073, -0.005513523705303669, 0.00507918419316411, 0.005951105151325464, 0.005173183046281338, 0.005001391749829054, -0.0177625585347414, 0.015130587853491306, -0.01999260112643242, -0.0192406103014946, 0.02140582725405693, -0.007377295754849911, 0.02927580662071705, -0.015104657039046288, -0.01216800045222044, 0.0034552712459117174, -0.003481202060356736, 0.013561777770519257, 0.0022592158056795597, -0.01183090079575777, 0.013665501028299332, 0.017075393348932266, 0.008511765860021114, -0.007409709505736828, -0.0014261907199397683, -0.003058206755667925, 0.0031424816697835922, 0.0021846650633960962, -0.000989419873803854, -0.022144854068756104, 0.0036270625423640013, -0.006233102176338434, -0.016504917293787003, 0.003999816719442606, 0.017931107431650162, -0.025956671684980392, 0.021626237779855728, 0.002192768268287182, -0.001260882243514061, 0.018721995875239372, -0.023493250831961632, 0.030598275363445282, -0.011616972275078297, -0.019331367686390877, 0.01505279541015625, 0.01505279541015625, 0.004524914547801018, 0.0019042887724936008, -0.014962038025259972]

在语义上相似的词通常由在该向量空间中彼此接近的向量表示。这允许进行诸如加法和减法之类的数学运算来传达语义含义。例如,“国王”的向量表示减去“男人”加上“女人”应该接近“女王”的向量表示。换句话说,向量嵌入是特定数据对象的数值表示。

向量索引允许您根据这些节点或关系的嵌入属性与查询中指定的嵌入属性之间的相似性来检索节点或关系的邻域。

创建向量索引

向量索引是节点的单标签、单属性索引,或关系的单关系类型、单属性索引。它可用于通过对索引有效的 LIST<INTEGER | FLOAT> 属性对节点或关系进行索引,这些属性对索引的维度和向量相似度函数有效。请注意,可用的向量索引提供程序(vector-2.0(默认)和 vector-1.0)支持不同的索引模式、属性值类型和向量维度。有关更多信息,请参阅 向量索引提供程序的兼容性

向量索引是通过使用 CREATE VECTOR INDEX 命令创建的。建议在创建索引时为其指定名称。如果创建时未指定名称,则会分配随机名称。从 Neo4j 5.16 开始,索引名称也可以作为参数给出:CREATE VECTOR INDEX $name …​

索引名称在索引和约束之间必须唯一。
新创建的索引不会立即可用,而是在后台创建。
创建索引需要 CREATE INDEX 权限
Movie 节点的 embedding 属性创建向量索引 在 5.15 中引入

CREATE VECTOR INDEX moviePlots IF NOT EXISTS (1)
FOR (m:Movie)
ON m.embedding
OPTIONS { indexConfig: {
 `vector.dimensions`: 1536,
 `vector.similarity_function`: 'cosine'
}} (2)
1 CREATE VECTOR INDEX 命令可选地是幂等的。这意味着,如果尝试创建相同的索引两次,其默认行为是抛出错误。使用 IF NOT EXISTS,如果已经存在具有相同名称、模式或两者兼而有之的索引,则不会抛出错误,也不会发生任何事情。如果存在具有相同名称的约束,它仍然可能会抛出错误。从 Neo4j 5.17 开始,当没有任何事情发生时,会返回一条信息通知,显示阻止创建的现有索引。
2 在 Neo4j 5.23 之前,OPTIONS 映射是必需的,因为如果不设置向量维度和相似度函数,就无法创建向量索引。从 Neo4j 5.23 开始,两者都可以省略。要详细了解可用的配置设置,请参阅 配置设置。在此示例中,向量维度显式设置为 1536,向量相似度函数设置为 'cosine',这通常是文本嵌入的首选相似度函数。要详细了解可用的相似度函数,请参阅 余弦和欧氏相似度函数
在 Neo4j 5.15 之前,节点向量索引是使用 db.index.vector.createNodeIndex 过程创建的。

您还可以使用以下语法为关系创建特定类型上给定属性的向量索引

为关系类型上的单个属性创建向量索引 在 5.18 中引入
CREATE VECTOR INDEX name IF NOT EXISTS
FOR ()-[r:REL_TYPE]-() ON (r.embedding)
OPTIONS { indexConfig: {
 `vector.dimensions`: $dimension,
 `vector.similarity_function`: $similarityFunction
}}

配置设置

有关不同索引提供程序接受的值的更多信息,请参阅 用于兼容性的向量索引提供程序

vector.dimensions

要索引的向量的维度。有关更多信息,请参阅 Neo4j 中的向量和嵌入。此设置可以省略,并且可以索引和查询任何 LIST<INTEGER | FLOAT>,并以其维度分隔,但只能比较相同维度的向量。设置此值会添加其他检查,以确保仅索引具有配置维度的向量,并且使用不同维度的向量查询索引会返回错误。

建议在创建向量索引时提供维度。
接受的值

介于 14096(含)之间的 INTEGER

默认值

无。在 Neo4j 5.23 之前,此设置是必需的。

vector.similarity_function

用于评估两个向量相似度的相似度函数的名称。要详细了解可用的相似度函数,请参阅 余弦和欧氏相似度函数

接受的值

STRING'cosine''euclidean'

默认值

'cosine'。在 Neo4j 5.23 之前,此设置是必需的。

vector.quantization.enabled

量化是一种减少向量表示大小的技术。启用量化可以加速搜索性能,但可能会稍微降低准确性。建议在内存有限的机器上启用量化。在 Neo4j 5.23 之前创建的向量索引实际上将此设置设置为 false

接受的值

BOOLEANtruefalse

默认值

true

高级配置设置

vector.hnsw.m

M 参数控制 HNSW(分层可导航小世界)图中每个节点的最大连接数。增加此值可能会导致更高的准确性,但会以增加索引填充和更新时间为代价,特别是对于高维向量。在 Neo4j 5.23 之前创建的向量索引实际上将此设置设置为 16

接受的值

介于 1512(含)之间的 INTEGER

默认值

16

vector.hnsw.ef_construction

在将向量插入 HNSW 图期间跟踪的最近邻的数量。增加此值会提高索引的质量,并可能导致更高的准确性(收益递减),但会以增加索引填充和更新时间为代价。在 Neo4j 5.23 之前创建的向量索引实际上将此设置设置为 100

接受的值

介于 13200(含)之间的 INTEGER

默认值

100

查询向量索引

要查询节点向量索引,请使用 db.index.vector.queryNodes 过程。

db.index.vector.queryNodes 的签名
db.index.vector.queryNodes(indexName :: STRING, numberOfNearestNeighbours :: INTEGER, query :: ANY) :: (node :: NODE, score :: FLOAT)
  • indexName 指的是要查询的向量索引的唯一名称。

  • numberOfNearestNeighbours 指的是要返回的最近邻的数量。

  • query 向量指的是要在其中搜索邻域的 LIST<INTEGER | FLOAT>

该过程返回节点及其各自相似度分数的邻域,并按这些分数排序。分数介于 01 之间,分数越接近 1,索引向量与查询向量越相似。

查找与《教父》情节最相似的 5 部电影
MATCH (m:Movie {title: 'Godfather, The'})
CALL db.index.vector.queryNodes('moviePlots', 5, m.embedding)
YIELD node AS movie, score
RETURN movie.title AS title, movie.plot AS plot, score
结果
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| title                      | plot                                                                                                                                                                                                                     | score              |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| "Godfather, The"           | "The aging patriarch of an organized crime dynasty transfers control of his clandestine empire to his reluctant son."                                                                                                    | 1.0                |
| "Godfather: Part III, The" | "In the midst of trying to legitimize his business dealings in New York and Italy in 1979, aging Mafia don Michael Corleone seeks to avow for his sins while taking a young protégé under his wing."                     | 0.9648237228393555 |
| "Godfather: Part II, The"  | "The early life and career of Vito Corleone in 1920s New York is portrayed while his son, Michael, expands and tightens his grip on his crime syndicate stretching from Lake Tahoe, Nevada to pre-revolution 1958 Cuba." | 0.9547788500785828 |
| "Goodfellas"               | "Henry Hill and his friends work their way up through the mob hierarchy."                                                                                                                                                | 0.9300689697265625 |
| "Scarface"                 | "An ambitious and near insanely violent gangster climbs the ladder of success in the mob, but his weaknesses prove to be his downfall."                                                                                  | 0.9367183446884155 |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

请注意,所有返回的电影的情节都围绕着犯罪家族组织展开。score 结果按降序返回,最佳匹配结果条目放在第一位(在本例中,《教父》的相似度分数为 1.0,这是可以预期的,因为索引是用此特定属性查询的)。如果不需要查询向量本身,则添加谓词 WHERE score < 1 会删除相同的向量。

要查询关系向量索引,请使用 db.index.vector.queryRelationships 过程。

db.index.vector.queryRelationships 的签名 在 5.18 中引入
db.index.vector.queryRelationships(indexName :: STRING, numberOfNearestNeighbours :: INTEGER, query :: ANY) :: (relationship :: RELATIONSHIP, score :: FLOAT)

db.index.vector.queryRelationshipsdb.index.vector.queryNodes 具有相同的参数说明。

使用 向量函数 计算两个特定向量对之间的相似度分数,而无需使用向量索引。

性能建议

向量索引可以利用孵化的 Java 20 向量 API 获得明显的加速。如果您使用的是兼容版本的 Java,则可以将以下设置添加到您的 配置设置

配置设置
server.jvm.additional=--add-modules jdk.incubator.vector

显示向量索引

要列出数据库中的所有向量索引,请使用 SHOW VECTOR INDEXES 命令。这与其他索引的 SHOW 命令相同,索引类型过滤为 VECTOR

列出索引需要 SHOW INDEX 权限
示例 1. 显示所有向量索引
显示具有默认返回列的向量索引
SHOW VECTOR INDEXES
结果
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| id | name         | state    | populationPercent | type     | entityType | labelsOrTypes | properties        | indexProvider | owningConstraint | lastRead                 | readCount |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 2  | "moviePlots" | "ONLINE" | 100.0             | "VECTOR" | "NODE"     | ["Movie"]     | ["embedding"]     | "vector-2.0"  | NULL             | 2024-05-07T09:19:09.225Z | 47        |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

有关所有返回列的完整说明,请参阅 搜索性能索引→列出索引的结果列

示例 2. 显示具有完整或过滤详细信息的向量索引

要返回完整的向量索引详细信息,请使用 YIELD *

显示所有具有所有返回列的向量索引
SHOW VECTOR INDEXES YIELD *
结果
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| id | name        | state    | populationPercent | type     | entityType | labelsOrTypes | properties        | indexProvider | owningConstraint| lastRead                  | readCount | trackedSince              | options                                                                                                                                                                                                                                                   | failureMessage | createStatement                                                                                                                                                                                                                                                                              |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 2  | "moviePlots"| "ONLINE" | 100.0             | "VECTOR" | "NODE"     | ["Movie"]     | ["embedding"]     | "vector-2.0"  | NULL            | 2024-05-07T09:19:09.225Z  | 47        | 2024-05-07T08:26:19.072Z  | {indexConfig: {indexConfig: {`vector.dimensions`: 1536, `vector.hnsw.m`: 16, `vector.quantization.enabled`: TRUE, `vector.similarity_function`: "COSINE", `vector.hnsw.ef_construction`: 100}, indexProvider: "vector-2.0"}, indexProvider: "vector-2.0"} | ""             | "CREATE VECTOR INDEX `moviePlots` FOR (n:`Movie`) ON (n.`embedding`) OPTIONS {indexConfig: {`vector.dimensions`: 1536,`vector.hnsw.ef_construction`: 100,`vector.hnsw.m`: 16,`vector.quantization.enabled`: true,`vector.similarity_function`: 'COSINE'}, indexProvider: 'vector-2.0'}"      |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

要仅返回特定详细信息,请在 YIELD 子句后指定所需的列名。

显示具有过滤返回列的所有向量索引
SHOW VECTOR INDEXES YIELD name, type, entityType, labelsOrTypes, properties
结果
+----------------------------------------------------------------------+
| name         | type     | entityType | labelsOrTypes | properties    |
+----------------------------------------------------------------------+
| "moviePlots" | "VECTOR" | "NODE"     | ["Movie"]     | ["embedding"] |
+----------------------------------------------------------------------+

删除向量索引

向量索引是使用 与其他索引相同的命令 DROP INDEX 删除的。从 Neo4j 5.16 开始,索引名称也可以作为参数在删除索引时给出:DROP INDEX $name

删除索引需要 DROP INDEX 权限
删除向量索引
DROP INDEX moviePlots

用于兼容性的向量索引提供程序

从 Neo4j 5.18 开始,默认和首选的向量索引提供程序是 vector-2.0。以前创建的 vector-1.0 索引将继续发挥作用。如果在 OPTIONS 映射中指定,则仍然可以使用 vector-1.0 提供程序创建新索引。

详细了解向量索引提供程序的差异
支持 vector-1.0 vector-2.0

索引模式

节点的单标签、单属性索引。

 

不支持关系。

节点的单标签、单属性索引。

 

关系的单类型、单属性索引。

索引属性值类型

LIST<FLOAT>

LIST<INTEGER | FLOAT>

索引向量维度

介于 12048(含)之间的 INTEGER

介于 14096(含)之间的 INTEGER

余弦相似度向量有效性

所有向量分量都可以在 IEEE 754 **单精度** 中有限表示。

 

l2-范数非零,并且可以在 IEEE 754 **单精度** 中有限表示。

所有向量分量都可以在 IEEE 754 **双精度** 中有限表示。

 

l2-范数非零,并且可以在 IEEE 754 **双精度** 中有限表示。

 

每个向量分量与其 l2-范数的比率可以在 IEEE 754 **单精度** 中有限表示。

余弦和欧氏相似度函数

相似度函数的选择会影响哪些索引向量被认为是相似的,以及哪些向量是有效的。向量的语义含义本身可能决定选择哪个相似度函数。请参阅您正在使用的特定向量嵌入模型的文档,因为它可能会建议首选某些相似度函数。否则,能够区分各种相似度函数可以帮助您做出更明智的决策。

表 1. 相似度函数
名称 不区分大小写的参数 关键相似性特征

余弦

"cosine"

角度

欧氏

"euclidean"

距离

对于 l2-归一化向量(单位向量),余弦和欧氏相似度函数产生相同的相似度排序。

详细了解余弦相似度函数

当向量之间的角度决定两个向量有多相似时,使用余弦相似度。

余弦向量索引的有效向量是

  • 所有向量分量都可以在 IEEE 754 双精度中有限表示。[2]

  • l2-范数非零,并且可以在 IEEE 754 双精度中有限表示。

  • 每个向量分量与其 l2-范数的比率可以在 IEEE 754 单精度中有限表示。

余弦相似度将向量解释为笛卡尔坐标系中的向量。该度量与两个向量之间的夹角有关。但是,角度可以用多种单位、符号约定和周期来描述。该角度的三角余弦既与上述角度约定无关,又具有边界性。余弦相似度返回三角余弦的值。

The cosine of vector v and vector u is defined as half of the quanity 1 plus the scalar product of v hat u hat, which equals half of the quantity 1 plus the scalar product of vector v vector u over the product of the l2-norm of vector v and the l2 norm ov vector u, which exists in the bounded set of real numbers between 0 inclusive and 1 inclusive.

在上式中,三角余弦由两个单位向量的标量积给出。

了解更多关于欧氏相似度函数的信息

当向量的距离决定了两个向量之间相似程度时,欧氏相似度很有用。

当欧氏向量索引的所有向量分量都可以在 IEEE 754 单精度浮点数中有限表示时,该向量才是有效的。

欧氏相似度将向量解释为笛卡尔坐标系中的向量。该度量与欧氏距离有关,即两点之间的距离。但是,该距离是无界的,作为相似度得分用处不大。欧氏相似度对欧氏距离的平方进行限定。

The Euclidean of vector v and vector u is defined as 1 over the quantity 1 plus the square of the l2-norm of vector v subtract vector u, which exists in the bounded set of real numbers between 0 exclusive and 1 inclusive.

向量索引过程

用法 过程 描述

创建节点向量索引。

使用给定的相似度函数,为指定的标签和属性创建具有给定向量维度的向量索引。已被 CREATE VECTOR INDEX 命令取代。

使用节点向量索引。

查询给定的节点向量索引。返回请求数量的近似最近邻节点及其相似度得分,按得分排序。

使用关系向量索引。

查询给定的关系向量索引。返回请求数量的近似最近邻关系及其相似度得分,按得分排序。 在 5.18 版本中引入

设置节点向量属性。

以比直接使用 SET 更节省空间的方式更新给定的节点属性和给定的向量。替换 db.create.setVectorProperty测试版 在 5.13 版本中引入

设置节点向量属性。

已被 db.create.setNodeVectorProperty 取代。 已弃用 测试版

设置关系向量属性。

以比直接使用 SET 更节省空间的方式更新给定的关系属性和给定的向量。 测试版 在 5.18 版本中引入

限制和已知问题

从 Neo4j 5.13 开始,向量索引不再是测试版功能。但是,它仍然存在一些限制和已知问题。

限制
  • 查询是近似最近邻搜索。请求的k个最近邻可能不是精确的k个最近邻,但位于同一更广阔的邻域内。

  • 对于接近已索引向量总数的大型请求最近邻k,搜索可能检索到的结果少于k个。

  • 在一个模式上只能有一个向量索引。例如,您不能在同一标签-属性键对上同时拥有一个欧氏和一个余弦向量索引。

  • 在同一事务中进行的更改对索引不可见。

已知问题

下表列出了已知问题,以及(如果已修复)修复它们的版本

已知问题 修复于

如果数据库上次写入的版本早于 Neo4j 5.11,并且旧版过程是新版本上使用的第一个写入操作,则在 Neo4j 5.18 及更高版本中,使用旧版过程 db.index.vector.createNodeIndex 创建向量索引可能会失败并出现错误。在 Neo4j 5.20 中,错误得到了澄清。

改为使用 CREATE VECTOR INDEX 命令可以避免此问题。如果必须使用该过程,则在使用该过程之前对数据库执行任何其他写入操作将避免此问题。

来自 SHOW PROCEDURES 的过程签名将使用 ANY 类型而不是语义上正确的 LIST<INTEGER | FLOAT> 类型来呈现向量参数。

类型仍然强制为 LIST<INTEGER | FLOAT>

没有用于调整索引的设置或选项。

Neo4j 5.23

仅支持节点向量索引。

Neo4j 5.18

向量索引不能分配自动生成的名称。

Neo4j 5.15

没有用于创建向量索引的 Cypher 语法。

使用过程 db.index.vector.createNodeIndex 创建向量索引。过程签名

db.index.vector.createNodeIndex(indexName :: STRING, label :: STRING, propertyKey :: STRING, vectorDimension :: INTEGER, vectorSimilarityFunction :: STRING)

Neo4j 5.15

缺少用于 SHOW INDEXES 命令的标准索引类型过滤。

也可以使用 WHERE 子句对向量索引进行过滤。

SHOW INDEXES
WHERE type = 'VECTOR'

Neo4j 5.15

在集群设置中,向量索引可能会错误地拒绝有效的查询。这是由于在处理从站上的索引功能时出现问题所致。

由于索引功能将在重新启动后正确配置,因此可以通过在创建向量索引后滚动集群来解决此问题。

有关 Neo4j 中集群的更多信息,请参阅 操作手册→集群

Neo4j 5.14

从索引中查询单个近似最近邻将导致验证检查失败。传递 null 值也将提供一个无用的异常。

Neo4j 5.13

如果事务状态包含更改,则向量索引查询将引发异常。这意味着写入只能在事务中的最后一个向量索引查询之后进行。

如果您需要运行多个向量索引查询并根据结果进行更改,则可以使用 CALL { ... } IN TRANSACTIONS 子句将它们与外部事务的状态隔离,从而解决此问题。

Neo4j 5.13

SHOW PROCEDURES 不显示向量索引过程。

这些过程仍然可以使用,只是不可见。

Neo4j 5.12

null 作为参数传递给某些过程参数可能会生成一个令人困惑的异常。

Neo4j 5.12

向量索引的创建跳过了将维度限制为 2048 的检查。

在 Neo4j 5.11 中配置的维度大于 2048 的向量索引在应用限制后应继续工作。

Neo4j 5.12

用于余弦相似度的验证确认向量的l2范数可以在 IEEE 754 **双精度**浮点数中有限表示,而不是在单精度浮点数中表示。这可能导致某些大型分量向量被错误地索引,并返回 ±0.0 的相似度得分。

Neo4j 5.12

db.index.vector.queryNodes 查询向量验证在使用余弦向量索引时不正确。l2范数验证仅考虑向量的最后一个分量。如果该分量为 ±0.0,则其他有效的查询向量将被视为无效。这还可能导致某些无效向量用于查询,并返回 ±0.0 的相似度得分。

对于l2归一化向量(单位向量),因此具有单位长度向量 v 的 l2 范数等于 1,欧氏相似度函数和余弦相似度函数产生相同的相似度排序。建议归一化您的向量(如果需要),并使用欧氏向量索引。

Neo4j 5.12

来自 SHOW INDEXES 的向量索引 createStatement 字段没有正确转义索引名称、标签和属性键中的单引号。

Neo4j 5.12

带有向量索引的数据库存储的复制不会记录重新创建命令,而是记录错误。

ERROR: [StoreCopy] Unable to format statement for index 'index-name'

由于一个

java.lang.IllegalArgumentException: Did not recognize index type VECTOR

如果需要存储副本,请记下从 SHOW INDEX 命令返回的 createStatement 列中的信息。例如

SHOW INDEXES YIELD type, createStatement
WHERE type = 'VECTOR'
RETURN createStatement

Neo4j 5.12

缺少一些在数据库滚动升级期间阻止使用新功能的保护措施。这可能导致在运行 Neo4j 5.11 的集群成员上创建向量索引的事务,并将其分发到运行旧版 Neo4j 版本的其他集群成员。旧版 Neo4j 版本将无法理解该事务。

在对 system 数据库调用 dbms.upgrade() 之前,请确保所有集群成员都已更新为使用 Neo4j 5.11(或更高版本)。提交后,可以安全地在集群上创建向量索引。

Neo4j 5.12


1。Lucene 实现了一个分层可导航小世界(HNSW)图,以对向量字段执行 k 个近似最近邻 (k-ANN) 查询。有关更多信息,请参阅 使用分层可导航小世界图进行高效且鲁棒的近似最近邻搜索——尤里·A·马尔科夫和德米特里·A·亚什宁