nidx-binding 6.3.4.post117__tar.gz → 6.3.4.post123__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/PKG-INFO +1 -1
  2. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_protos/pyproject.toml +1 -1
  3. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_relation/src/graph_query_parser.rs +32 -9
  4. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_relation/tests/test_graph_search.rs +44 -5
  5. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_tests/src/graph.rs +19 -4
  6. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/pyproject.toml +1 -1
  7. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/tests/test_search_relations.rs +8 -2
  8. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-0cfce9b29547f8f5bafa6e440f86103be7b8c4ad2fd92db9ac223f4efbe23d10.json +0 -0
  9. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-1a561eed00f3dbe868bf5030059793300209179dc8fb73e4b57a54b5e81262fe.json +0 -0
  10. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-1d3fca2682e25a01143da92285297f134a6a105a96f64d87e0db3abb219855e4.json +0 -0
  11. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-249b3b57c27a71baa823f1fe0f0bba9c9af36f61c28f731e58beea60ec48e687.json +0 -0
  12. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-24cb6b683daa42d7125f862e25943ab4be7bf275cd8739f8da4859d701795e1a.json +0 -0
  13. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-263c8fce6db5b03bbd012fafdba6943cbee6ed7eb8976cdef4f5b01dde7ca6fd.json +0 -0
  14. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-2a5d92fb1638df830a4477a7cdf24e6db6b43034b7bbe74fdfb63e8afe2c4071.json +0 -0
  15. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-2b065a363f58caed60e3706603c1260dbf5a4c795604a5b68edda22eb07fec1b.json +0 -0
  16. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-3fc3cb39934683de8cd475ce1368c8373453eb1e01f81587d66b9d14b109ce6e.json +0 -0
  17. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-48f33b77b7c1633467b0b2efcaa1d3c207e7757e4f1d83b40d15e6ca365f7771.json +0 -0
  18. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-4ae09f2c08e2f324bee01bb8487a8f37678a1c5e9d327339235c50d4921a8949.json +0 -0
  19. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-4d7a76fa413c9ef0ce2a47ac7bb7e01d3e6a2aabded9487d21010a53efee8852.json +0 -0
  20. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-4fcbdd6657c7dc9b60b3a563dd41711b3dbcf72ce063427b7a01f8cddf34c244.json +0 -0
  21. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-577109ac00ccfbd38ecaccab94116f2f46a4caf5612afa372cded197123c1e08.json +0 -0
  22. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-5db25f97d8578d6d78f2f6bd4b72cc82a9b1b82805c6422d967ac63b20d99db4.json +0 -0
  23. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-5ec3233a3a23e926055056d46bdde17836a633066dbb5f349502648cd3ea9a60.json +0 -0
  24. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-66edb6ea424d8681927dcddb6bac5f1239175f4775d1f40417ba15054b0c6f19.json +0 -0
  25. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-6f9c6d201c1b5712efb68c363bffd3e0169c11f2a8f925e8cd4e8808599ff7b4.json +0 -0
  26. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-733c3ebacc86f444bf5e2dd79ade660c291e88a00fc09b722f6e2e191545874c.json +0 -0
  27. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-77a245aed9f6f8b9fc643efbd4b1e2e8e99bbba085e3e75a4f29321cd7b2a25c.json +0 -0
  28. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-7a3bf27c330c468a596e8a297cf7d8b192e31e67ecc5177c1267f579e8e247c7.json +0 -0
  29. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-7a7e59e47b30b12237511fd3d7da2d17b0471ad2b006af48d6a6f587c779692b.json +0 -0
  30. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-7dcbb33312cc9f11ae3a6d73b1ace017a9f19a8bf8f10304fc57977c8efeadff.json +0 -0
  31. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-7efa7c0d747afc4b6aed0586ff846c27839c3213ff7ee9f30c89b0d0f17e60e3.json +0 -0
  32. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-8493140d788604d498a4e48da4158708572ccc9d60185290a00d549cc84533db.json +0 -0
  33. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-8493bb0059b013eaca42fd10cd7d04f0d06a8acaed379eff0d23f3229edde9ee.json +0 -0
  34. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-87996b3d6c7a2195438d7038015b06949102bce8c7b8cd8db1f83aaf23cbe489.json +0 -0
  35. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-8f096d8171b89f9615d18f95d696dc9e4fb3674e103161a713cdc806f7a68506.json +0 -0
  36. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-917732a56ee04bf3a6e127319dda8225210869c82f9828d878162394dba4e078.json +0 -0
  37. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-95fe4ef93ee90733db1b67ed7987f80b5aac792f1590b979c68b418d1599eb98.json +0 -0
  38. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-9b67658569b343d8b4b61ae0a7dc721f367f2ba33c7b69b9e68bfd5c9bff5206.json +0 -0
  39. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-9c8062ea55d070afef68309e58fa987eb37fda44e1efbf68c8ba2af7846cc968.json +0 -0
  40. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-a06e1d9f6f95e4c4c2b98310ebddcc9d963cc033582bf2e945e8bf3a301b4247.json +0 -0
  41. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-a55265c9b07bd1399961a6f1e757201fd0eebe868ddaf96437111113d80fce92.json +0 -0
  42. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-a891a37be5c2d7cce775c2dd33726b0318fd3839beab222a1b22bc6174604207.json +0 -0
  43. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-a945191bb4b3e37d6823ed3ad499339d007d69983105de8567777d9daf517b28.json +0 -0
  44. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-abe9f7832f2bd799ac44008da031e8d8ab52d4f5fbfc2a7e3974e8873bae55b2.json +0 -0
  45. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-aca588cca57a85e4d7fcc40c23cd87e57d53d11ca550d78e7e3d5e39e524fcd3.json +0 -0
  46. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-b02f8aafc00a7724510772ac41269e368c5bccf03ef7b4590e0ef6fd1a1bf64f.json +0 -0
  47. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-b742e17cabe2d64617e9aa64bafc782172f7a4f8023d1b54f952a0fb39f6b2b8.json +0 -0
  48. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-b94e349dbc0daec57f8f8f6e9e2dffb06100b1bb2b41d297c9f3b191da37a83d.json +0 -0
  49. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-bd9afa22994aba671dbf7b5f89b53c2ee02f53c0442a81265786a6d52d08512f.json +0 -0
  50. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-be60554eca98a5899efc6b49785cecd6444a6d39afed9e4a884ce2dbf162012c.json +0 -0
  51. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-bf49702b506c9a1650ece1f8e8d9f14834a902f8caefafe30ded55e2790f2188.json +0 -0
  52. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-bfb8ae2e860e451b0868a7b1b50a451d998b2105f9fdfd307b26a1775d145e9f.json +0 -0
  53. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-bfcd21ed704cd305db5c17fcdec7d92aa4ac501913c9c9514d8ff92928c0c7e7.json +0 -0
  54. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-c3ab694650f49a75b146fb877a92e48c4f20f0d99f70f8ec859fbb763b01a1e5.json +0 -0
  55. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-c55542bb9fae544d87fae6f30e0fe8a9088d12075f4442ab4fe2fcd05e472234.json +0 -0
  56. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-cb29a6556d35ac630ee0aa885dd7341cf9573bd3efd216ff8a887b87686b03db.json +0 -0
  57. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-d0a1f341a89f5f14696b10baa72db9d95551c2b7e5fc67308fd52dc03dd98a92.json +0 -0
  58. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-d2ad0a0ca2649c9e4873cfcc1fc66d2d07cc45d0f65c560b06d7b5f592f4fa8a.json +0 -0
  59. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-d6cfe78eb635ba0b89ca4021a4dc8182d18ab5b197f30149cd28488eba4c1df5.json +0 -0
  60. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-d729b56dea00e49dcdba8cf0001e2811da27351eabe98212db3b589f18fc6f32.json +0 -0
  61. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-d9658bfd4e7170b41d03f2ddf2446d0bf54171c0d39d53bf20af2b8437f2ec48.json +0 -0
  62. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-dbba7b3d3289425bae711aedbf73fbc3699f857f86f84d95c3b556d05c5658b0.json +0 -0
  63. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-dcb96b649d6d63a58efd5d445453a4f3d7869a56ff714b69bedf3d616a0473ca.json +0 -0
  64. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-ebd876fbf5362a5900e75bc05f2f11c73c406ef7da4e95097fc6a1c3d1b8bc54.json +0 -0
  65. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-eef5cc6bce1cc14eba8f3e68971724ef181e88cffcedd74673615f2026b89a62.json +0 -0
  66. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/.sqlx/query-ef56d5fefc5774040d1ee397beadb475f6af02768c22f0e583c74062e2e821ce.json +0 -0
  67. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/Cargo.lock +0 -0
  68. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/Cargo.toml +0 -0
  69. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/README.md +0 -0
  70. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/migrations/20241007163501_initial.sql +0 -0
  71. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/migrations/20241211120039_merge_job_priority.sql +0 -0
  72. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/migrations/20241211121159_basic_indexes.sql +0 -0
  73. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/migrations/20241212151105_check_segment_records.sql +0 -0
  74. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/migrations/20250110145554_in_flight_messages.sql +0 -0
  75. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_binding/Cargo.toml +0 -0
  76. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_binding/src/lib.rs +0 -0
  77. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/Cargo.toml +0 -0
  78. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/src/fuzzy_query.rs +0 -0
  79. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/src/lib.rs +0 -0
  80. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/src/query_io.rs +0 -0
  81. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/src/reader.rs +0 -0
  82. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/src/request_types.rs +0 -0
  83. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/src/resource_indexer.rs +0 -0
  84. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/src/schema.rs +0 -0
  85. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/src/search_query.rs +0 -0
  86. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/src/search_response.rs +0 -0
  87. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/src/set_query.rs +0 -0
  88. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/src/stop_words.rs +0 -0
  89. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/README.md +0 -0
  90. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/ar.json +0 -0
  91. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/az.json +0 -0
  92. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/bn.json +0 -0
  93. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/ca.json +0 -0
  94. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/ch.json +0 -0
  95. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/da.json +0 -0
  96. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/de.json +0 -0
  97. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/el.json +0 -0
  98. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/en.json +0 -0
  99. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/es.json +0 -0
  100. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/eu.json +0 -0
  101. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/extract.py +0 -0
  102. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/fi.json +0 -0
  103. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/fr.json +0 -0
  104. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/he.json +0 -0
  105. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/hu.json +0 -0
  106. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/id.json +0 -0
  107. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/it.json +0 -0
  108. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/kk.json +0 -0
  109. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/ne.json +0 -0
  110. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/nl.json +0 -0
  111. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/no.json +0 -0
  112. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/pt.json +0 -0
  113. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/ro.json +0 -0
  114. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/ru.json +0 -0
  115. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/sl.json +0 -0
  116. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/sv.json +0 -0
  117. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/tg.json +0 -0
  118. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/stop_words/tr.json +0 -0
  119. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/tests/common/mod.rs +0 -0
  120. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_paragraph/tests/reader.rs +0 -0
  121. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_protos/Cargo.toml +0 -0
  122. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_protos/build.py +0 -0
  123. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_protos/build.rs +0 -0
  124. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_protos/src/lib.rs +0 -0
  125. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_protos/src/nidx.proto +0 -0
  126. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_relation/Cargo.toml +0 -0
  127. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_relation/src/graph_collector.rs +0 -0
  128. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_relation/src/io_maps.rs +0 -0
  129. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_relation/src/lib.rs +0 -0
  130. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_relation/src/reader.rs +0 -0
  131. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_relation/src/resource_indexer.rs +0 -0
  132. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_relation/src/schema.rs +0 -0
  133. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_relation/tests/common/mod.rs +0 -0
  134. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_relation/tests/test_reader.rs +0 -0
  135. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_relation/tests/test_writer.rs +0 -0
  136. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_tantivy/Cargo.toml +0 -0
  137. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_tantivy/src/index_reader.rs +0 -0
  138. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_tantivy/src/lib.rs +0 -0
  139. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_tests/Cargo.toml +0 -0
  140. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_tests/src/lib.rs +0 -0
  141. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_text/Cargo.toml +0 -0
  142. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_text/src/lib.rs +0 -0
  143. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_text/src/prefilter.rs +0 -0
  144. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_text/src/query_io.rs +0 -0
  145. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_text/src/reader.rs +0 -0
  146. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_text/src/request_types.rs +0 -0
  147. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_text/src/resource_indexer.rs +0 -0
  148. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_text/src/schema.rs +0 -0
  149. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_text/src/search_query.rs +0 -0
  150. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_text/tests/common/mod.rs +0 -0
  151. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_text/tests/test_flow.rs +0 -0
  152. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_text/tests/test_search.rs +0 -0
  153. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_text/tests/test_streaming.rs +0 -0
  154. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_types/Cargo.toml +0 -0
  155. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_types/src/lib.rs +0 -0
  156. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_types/src/prefilter.rs +0 -0
  157. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_types/src/query_language.rs +0 -0
  158. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_vector/Cargo.toml +0 -0
  159. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_vector/src/config.rs +0 -0
  160. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_vector/src/data_point/disk_hnsw.rs +0 -0
  161. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_vector/src/data_point/mod.rs +0 -0
  162. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_vector/src/data_point/node.rs +0 -0
  163. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_vector/src/data_point/ops_hnsw.rs +0 -0
  164. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_vector/src/data_point/params.rs +0 -0
  165. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_vector/src/data_point/ram_hnsw.rs +0 -0
  166. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_vector/src/data_point/tests.rs +0 -0
  167. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_vector/src/data_point_provider/mod.rs +0 -0
  168. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_vector/src/data_point_provider/reader.rs +0 -0
  169. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_vector/src/data_types/data_store.rs +0 -0
  170. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_vector/src/data_types/mod.rs +0 -0
  171. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_vector/src/data_types/trie.rs +0 -0
  172. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_vector/src/data_types/trie_ram.rs +0 -0
  173. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_vector/src/formula/mod.rs +0 -0
  174. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_vector/src/indexer.rs +0 -0
  175. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_vector/src/inverted_index/fst_index.rs +0 -0
  176. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_vector/src/inverted_index/map.rs +0 -0
  177. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_vector/src/inverted_index.rs +0 -0
  178. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_vector/src/lib.rs +0 -0
  179. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_vector/src/query_io.rs +0 -0
  180. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_vector/src/request_types.rs +0 -0
  181. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_vector/src/utils.rs +0 -0
  182. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_vector/src/vector_types/dense_f32.rs +0 -0
  183. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_vector/src/vector_types/mod.rs +0 -0
  184. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_vector/tests/common/mod.rs +0 -0
  185. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_vector/tests/test_basic_search.rs +0 -0
  186. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/nidx_vector/tests/test_hidden.rs +0 -0
  187. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/api/grpc.rs +0 -0
  188. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/api/shards.rs +0 -0
  189. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/api.rs +0 -0
  190. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/control.rs +0 -0
  191. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/errors.rs +0 -0
  192. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/grpc_server.rs +0 -0
  193. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/import_export.rs +0 -0
  194. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/indexer.rs +0 -0
  195. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/lib.rs +0 -0
  196. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/main.rs +0 -0
  197. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/metadata/deletion.rs +0 -0
  198. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/metadata/index.rs +0 -0
  199. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/metadata/index_request.rs +0 -0
  200. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/metadata/merge_job.rs +0 -0
  201. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/metadata/segment.rs +0 -0
  202. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/metadata/shard.rs +0 -0
  203. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/metadata.rs +0 -0
  204. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/metrics.rs +0 -0
  205. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/scheduler/audit_task.rs +0 -0
  206. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/scheduler/log_merge.rs +0 -0
  207. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/scheduler/merge_task.rs +0 -0
  208. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/scheduler/metrics_task.rs +0 -0
  209. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/scheduler/purge_tasks.rs +0 -0
  210. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/scheduler/vector_merge.rs +0 -0
  211. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/scheduler.rs +0 -0
  212. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/searcher/grpc.rs +0 -0
  213. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/searcher/index_cache.rs +0 -0
  214. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/searcher/query_language.rs +0 -0
  215. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/searcher/query_planner.rs +0 -0
  216. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/searcher/shard_search.rs +0 -0
  217. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/searcher/shard_selector.rs +0 -0
  218. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/searcher/shard_suggest.rs +0 -0
  219. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/searcher/streams.rs +0 -0
  220. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/searcher/sync.rs +0 -0
  221. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/searcher.rs +0 -0
  222. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/segment_store.rs +0 -0
  223. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/settings.rs +0 -0
  224. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/telemetry/duration_layer.rs +0 -0
  225. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/telemetry/log_format.rs +0 -0
  226. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/telemetry/middleware.rs +0 -0
  227. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/telemetry.rs +0 -0
  228. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/tool.rs +0 -0
  229. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/src/worker.rs +0 -0
  230. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/tests/common/mod.rs +0 -0
  231. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/tests/common/services.rs +0 -0
  232. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/tests/test_date_range_search.rs +0 -0
  233. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/tests/test_search_filtering.rs +0 -0
  234. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/tests/test_search_sorting.rs +0 -0
  235. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/tests/test_searcher_cluster.rs +0 -0
  236. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/tests/test_security_search.rs +0 -0
  237. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/tests/test_shards.rs +0 -0
  238. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/tests/test_shards_api.rs +0 -0
  239. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/tests/test_suggest.rs +0 -0
  240. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/tests/test_synced_searcher.rs +0 -0
  241. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/tests/test_vector_normalization.rs +0 -0
  242. {nidx_binding-6.3.4.post117 → nidx_binding-6.3.4.post123}/tests/test_vectorsets.rs +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nidx_binding
3
- Version: 6.3.4.post117
3
+ Version: 6.3.4.post123
4
4
  Classifier: Programming Language :: Rust
5
5
  Classifier: Programming Language :: Python :: Implementation :: CPython
6
6
  Classifier: Programming Language :: Python :: Implementation :: PyPy
@@ -4,7 +4,7 @@ build-backend = "pdm.backend"
4
4
 
5
5
  [project]
6
6
  name = "nidx_protos"
7
- version = "6.3.4.post117"
7
+ version = "6.3.4.post123"
8
8
  license = { text = "AGPL" }
9
9
  description = "Protobuf definitions for nucliadb/nidx"
10
10
  authors = [ { name = "Nuclia", email = "nucliadb@nuclia.com" }]
@@ -18,6 +18,7 @@
18
18
  // along with this program. If not, see <http://www.gnu.org/licenses/>.
19
19
  //
20
20
  use anyhow::anyhow;
21
+ use nidx_protos::relation::RelationType;
21
22
  use nidx_protos::relation_node::NodeType;
22
23
  use nidx_types::query_language::{BooleanExpression, BooleanOperation, Operator};
23
24
  use tantivy::query::{AllQuery, BooleanQuery, FuzzyTermQuery, Occur, Query, TermQuery};
@@ -51,6 +52,7 @@ pub struct Node {
51
52
  #[derive(Default, Clone)]
52
53
  pub struct Relation {
53
54
  pub value: Option<String>,
55
+ pub relation_type: Option<RelationType>,
54
56
  }
55
57
 
56
58
  // Generic (simple) boolean expression for graph querying
@@ -393,16 +395,28 @@ impl GraphQueryParser {
393
395
  let mut subqueries = vec![];
394
396
 
395
397
  match expression {
396
- Expression::Value(Relation { value: None }) => {}
397
- Expression::Value(Relation { value: Some(value) }) if value.is_empty() => {}
398
- Expression::Value(Relation { value: Some(value) }) => {
399
- subqueries.push((Occur::Must, self.has_relation_label(value)));
398
+ Expression::Value(Relation { value, relation_type }) => {
399
+ value.as_ref().map(|value| {
400
+ if !value.is_empty() {
401
+ subqueries.push((Occur::Must, self.has_relation_label(value)));
402
+ }
403
+ });
404
+
405
+ relation_type.map(|relation_type| {
406
+ subqueries.push((Occur::Must, self.has_relation_type(relation_type)));
407
+ });
400
408
  }
401
409
 
402
- Expression::Not(Relation { value: None }) => {}
403
- Expression::Not(Relation { value: Some(value) }) if value.is_empty() => {}
404
- Expression::Not(Relation { value: Some(value) }) => {
405
- subqueries.push((Occur::MustNot, self.has_relation_label(value)));
410
+ Expression::Not(Relation { value, relation_type }) => {
411
+ value.as_ref().map(|value| {
412
+ if !value.is_empty() {
413
+ subqueries.push((Occur::MustNot, self.has_relation_label(value)));
414
+ }
415
+ });
416
+
417
+ relation_type.map(|relation_type| {
418
+ subqueries.push((Occur::MustNot, self.has_relation_type(relation_type)));
419
+ });
406
420
  }
407
421
 
408
422
  Expression::Or(relations) => {
@@ -487,6 +501,14 @@ impl GraphQueryParser {
487
501
  IndexRecordOption::Basic,
488
502
  ))
489
503
  }
504
+
505
+ fn has_relation_type(&self, relation_type: RelationType) -> Box<dyn Query> {
506
+ let relation_type = io_maps::relation_type_to_u64(relation_type);
507
+ Box::new(TermQuery::new(
508
+ tantivy::Term::from_field_u64(self.schema.relationship, relation_type),
509
+ IndexRecordOption::Basic,
510
+ ))
511
+ }
490
512
  }
491
513
 
492
514
  impl From<String> for Term {
@@ -663,7 +685,8 @@ impl TryFrom<&nidx_protos::graph_query::Relation> for Relation {
663
685
 
664
686
  fn try_from(relation_pb: &nidx_protos::graph_query::Relation) -> Result<Self, Self::Error> {
665
687
  let value = relation_pb.value.clone();
688
+ let relation_type = relation_pb.relation_type.map(RelationType::try_from).transpose()?;
666
689
 
667
- Ok(Relation { value })
690
+ Ok(Relation { value, relation_type })
668
691
  }
669
692
  }
@@ -19,6 +19,7 @@
19
19
  //
20
20
  mod common;
21
21
 
22
+ use nidx_protos::relation::RelationType;
22
23
  use nidx_protos::relation_node::NodeType;
23
24
  use nidx_protos::{Resource, ResourceId};
24
25
  use nidx_relation::graph_query_parser::{
@@ -44,7 +45,7 @@ fn test_graph_node_query() -> anyhow::Result<()> {
44
45
  node_subtype: None,
45
46
  ..Default::default()
46
47
  }))))?;
47
- assert_eq!(result.graph.len(), 16);
48
+ assert_eq!(result.graph.len(), 17);
48
49
 
49
50
  // (:PERSON)-[]->()
50
51
  let result = reader
@@ -202,21 +203,46 @@ fn test_graph_relation_query() -> anyhow::Result<()> {
202
203
  .reader
203
204
  .inner_graph_search(GraphQuery::RelationQuery(RelationQuery(Expression::Value(Relation {
204
205
  value: Some("LIVE_IN".to_string()),
206
+ ..Default::default()
205
207
  }))))?;
206
208
  let relations = friendly_parse(&result);
207
209
  assert_eq!(relations.len(), 2);
208
210
  assert!(relations.contains(&("Anna", "LIVE_IN", "New York")));
209
211
  assert!(relations.contains(&("Peter", "LIVE_IN", "New York")));
210
212
 
213
+ // ()-[:Synonym]->()
214
+ let result = reader
215
+ .reader
216
+ .inner_graph_search(GraphQuery::RelationQuery(RelationQuery(Expression::Value(Relation {
217
+ relation_type: Some(RelationType::Synonym),
218
+ ..Default::default()
219
+ }))))?;
220
+ let relations = friendly_parse(&result);
221
+ assert_eq!(relations.len(), 1);
222
+ assert!(relations.contains(&("Mr. P", "ALIAS", "Peter")));
223
+
224
+ // Synonym relations with nonexistent label
225
+ let result = reader
226
+ .reader
227
+ .inner_graph_search(GraphQuery::RelationQuery(RelationQuery(Expression::Value(Relation {
228
+ value: Some("FAKE".to_string()),
229
+ relation_type: Some(RelationType::Synonym),
230
+ ..Default::default()
231
+ }))))?;
232
+ let relations = friendly_parse(&result);
233
+ assert_eq!(relations.len(), 0);
234
+
211
235
  // ()-[:LIVE_IN | BORN_IN]->()
212
236
  let result = reader
213
237
  .reader
214
238
  .inner_graph_search(GraphQuery::RelationQuery(RelationQuery(Expression::Or(vec![
215
239
  Relation {
216
240
  value: Some("BORN_IN".to_string()),
241
+ ..Default::default()
217
242
  },
218
243
  Relation {
219
244
  value: Some("LIVE_IN".to_string()),
245
+ ..Default::default()
220
246
  },
221
247
  ]))))?;
222
248
  let relations = friendly_parse(&result);
@@ -225,14 +251,15 @@ fn test_graph_relation_query() -> anyhow::Result<()> {
225
251
  assert!(relations.contains(&("Erin", "BORN_IN", "UK")));
226
252
  assert!(relations.contains(&("Peter", "LIVE_IN", "New York")));
227
253
 
228
- // // ()-[:!LIVE_IN]->()
254
+ // ()-[:!LIVE_IN]->()
229
255
  let result = reader
230
256
  .reader
231
257
  .inner_graph_search(GraphQuery::RelationQuery(RelationQuery(Expression::Not(Relation {
232
258
  value: Some("LIVE_IN".to_string()),
259
+ ..Default::default()
233
260
  }))))?;
234
261
  let relations = friendly_parse(&result);
235
- assert_eq!(relations.len(), 14);
262
+ assert_eq!(relations.len(), 15);
236
263
 
237
264
  Ok(())
238
265
  }
@@ -250,7 +277,10 @@ fn test_graph_directed_path_query() -> anyhow::Result<()> {
250
277
  node_type: Some(NodeType::Entity),
251
278
  node_subtype: Some("PERSON".to_string()),
252
279
  }),
253
- Expression::Value(Relation { value: None }),
280
+ Expression::Value(Relation {
281
+ value: None,
282
+ ..Default::default()
283
+ }),
254
284
  Expression::Value(Node {
255
285
  value: Some("UK".into()),
256
286
  node_type: Some(NodeType::Entity),
@@ -271,7 +301,10 @@ fn test_graph_directed_path_query() -> anyhow::Result<()> {
271
301
  node_subtype: Some("PERSON".to_string()),
272
302
  ..Default::default()
273
303
  }),
274
- Expression::Value(Relation { value: None }),
304
+ Expression::Value(Relation {
305
+ value: None,
306
+ ..Default::default()
307
+ }),
275
308
  Expression::Value(Node {
276
309
  value: None,
277
310
  node_type: None,
@@ -298,6 +331,7 @@ fn test_graph_directed_path_query() -> anyhow::Result<()> {
298
331
  }),
299
332
  Expression::Value(Relation {
300
333
  value: Some("LIVE_IN".to_string()),
334
+ ..Default::default()
301
335
  }),
302
336
  Expression::Value(Node {
303
337
  value: None,
@@ -324,9 +358,11 @@ fn test_graph_directed_path_query() -> anyhow::Result<()> {
324
358
  Expression::Or(vec![
325
359
  Relation {
326
360
  value: Some("LIVE_IN".to_string()),
361
+ ..Default::default()
327
362
  },
328
363
  Relation {
329
364
  value: Some("LOVE".to_string()),
365
+ ..Default::default()
330
366
  },
331
367
  ]),
332
368
  Expression::Value(Node {
@@ -361,6 +397,7 @@ fn test_graph_undirected_path_query() -> anyhow::Result<()> {
361
397
  }),
362
398
  Expression::Value(Relation {
363
399
  value: Some("IS_FRIEND".to_string()),
400
+ ..Default::default()
364
401
  }),
365
402
  Expression::Value(Node::default()),
366
403
  ))))?;
@@ -381,9 +418,11 @@ fn test_graph_response() -> anyhow::Result<()> {
381
418
  .inner_graph_search(GraphQuery::RelationQuery(RelationQuery(Expression::Or(vec![
382
419
  Relation {
383
420
  value: Some("LIVE_IN".to_string()),
421
+ ..Default::default()
384
422
  },
385
423
  Relation {
386
424
  value: Some("WORK_IN".to_string()),
425
+ ..Default::default()
387
426
  },
388
427
  ]))))?;
389
428
  friendly_print(&result);
@@ -78,6 +78,7 @@ pub fn knowledge_graph_as_relations() -> Vec<Relation> {
78
78
  ("Dimitri", "PERSON"),
79
79
  ("Erin", "PERSON"),
80
80
  ("Jerry", "ANIMAL"),
81
+ ("Mr. P", "AGENT"),
81
82
  ("Margaret", "PERSON"),
82
83
  ("Mouse", "ANIMAL"),
83
84
  ("New York", "PLACE"),
@@ -88,6 +89,19 @@ pub fn knowledge_graph_as_relations() -> Vec<Relation> {
88
89
  ("UK", "PLACE"),
89
90
  ]);
90
91
 
92
+ let relations = HashMap::from([
93
+ ("ALIAS", RelationType::Synonym),
94
+ ("BORN_IN", RelationType::Entity),
95
+ ("CHASE", RelationType::Entity),
96
+ ("DEVELOPED", RelationType::Entity),
97
+ ("FOLLOW", RelationType::Entity),
98
+ ("IS", RelationType::Entity),
99
+ ("IS_FRIEND", RelationType::Entity),
100
+ ("LIVE_IN", RelationType::Entity),
101
+ ("LOVE", RelationType::Entity),
102
+ ("WORK_IN", RelationType::Entity),
103
+ ]);
104
+
91
105
  let graph = vec![
92
106
  ("Anastasia", "IS_FRIEND", "Anna"),
93
107
  ("Anna", "FOLLOW", "Erin"),
@@ -102,20 +116,21 @@ pub fn knowledge_graph_as_relations() -> Vec<Relation> {
102
116
  ("Jerry", "IS", "Mouse"),
103
117
  ("Margaret", "DEVELOPED", "Apollo"),
104
118
  ("Margaret", "WORK_IN", "Computer science"),
119
+ ("Mr. P", "ALIAS", "Peter"),
105
120
  ("Peter", "LIVE_IN", "New York"),
106
121
  ("Tom", "CHASE", "Jerry"),
107
122
  ("Tom", "IS", "Cat"),
108
123
  ];
109
124
 
110
- let mut relations = vec![];
125
+ let mut pb_relations = vec![];
111
126
  for (source, relation, target) in graph {
112
- relations.push(Relation {
127
+ pb_relations.push(Relation {
113
128
  source: Some(RelationNode {
114
129
  value: source.to_string(),
115
130
  ntype: NodeType::Entity as i32,
116
131
  subtype: entities.get(source).unwrap().to_string(),
117
132
  }),
118
- relation: RelationType::Entity.into(),
133
+ relation: *relations.get(relation).unwrap() as i32,
119
134
  relation_label: relation.to_string(),
120
135
  to: Some(RelationNode {
121
136
  value: target.to_string(),
@@ -127,5 +142,5 @@ pub fn knowledge_graph_as_relations() -> Vec<Relation> {
127
142
  })
128
143
  }
129
144
 
130
- relations
145
+ pb_relations
131
146
  }
@@ -13,7 +13,7 @@ classifiers = [
13
13
  "Programming Language :: Python :: Implementation :: CPython",
14
14
  "Programming Language :: Python :: Implementation :: PyPy",
15
15
  ]
16
- version = "6.3.4.post117"
16
+ version = "6.3.4.post123"
17
17
 
18
18
  [project.urls]
19
19
  Homepage = "https://nuclia.com"
@@ -446,7 +446,7 @@ async fn test_graph_search_nodes(pool: PgPool) -> anyhow::Result<()> {
446
446
  .await?
447
447
  .into_inner();
448
448
  let nodes = &response.nodes;
449
- assert_eq!(nodes.len(), 17);
449
+ assert_eq!(nodes.len(), 18);
450
450
 
451
451
  // Search all ANIMAL nodes
452
452
  let response = fixture
@@ -522,7 +522,7 @@ async fn test_graph_search__node_query(pool: PgPool) -> anyhow::Result<()> {
522
522
  .await?
523
523
  .into_inner();
524
524
  let relations = friendly_parse(&response);
525
- assert_eq!(relations.len(), 16);
525
+ assert_eq!(relations.len(), 17);
526
526
 
527
527
  // (:PERSON)-[]->()
528
528
  let response = fixture
@@ -744,6 +744,7 @@ async fn test_graph_search_relations(pool: PgPool) -> anyhow::Result<()> {
744
744
  query: Some(path_query::Query::Path(graph_query::Path {
745
745
  relation: Some(graph_query::Relation {
746
746
  value: Some("LIVE_IN".to_string()),
747
+ ..Default::default()
747
748
  }),
748
749
  ..Default::default()
749
750
  })),
@@ -770,6 +771,7 @@ async fn test_graph_search_relations(pool: PgPool) -> anyhow::Result<()> {
770
771
  query: Some(path_query::Query::Path(graph_query::Path {
771
772
  relation: Some(graph_query::Relation {
772
773
  value: Some("PLAYED".to_string()),
774
+ ..Default::default()
773
775
  }),
774
776
  ..Default::default()
775
777
  })),
@@ -833,6 +835,7 @@ async fn test_graph_search__relation_query(pool: PgPool) -> anyhow::Result<()> {
833
835
  query: Some(path_query::Query::Path(graph_query::Path {
834
836
  relation: Some(graph_query::Relation {
835
837
  value: Some("LIVE_IN".to_string()),
838
+ ..Default::default()
836
839
  }),
837
840
  ..Default::default()
838
841
  })),
@@ -859,6 +862,7 @@ async fn test_graph_search__relation_query(pool: PgPool) -> anyhow::Result<()> {
859
862
  query: Some(path_query::Query::Path(graph_query::Path {
860
863
  relation: Some(graph_query::Relation {
861
864
  value: Some("LIVE_IN".to_string()),
865
+ ..Default::default()
862
866
  }),
863
867
  ..Default::default()
864
868
  })),
@@ -968,6 +972,7 @@ async fn test_graph_search__directed_path_query(pool: PgPool) -> anyhow::Result<
968
972
  }),
969
973
  relation: Some(graph_query::Relation {
970
974
  value: Some("LIVE_IN".to_string()),
975
+ ..Default::default()
971
976
  }),
972
977
  destination: Some(graph_query::Node {
973
978
  node_subtype: Some("PLACE".to_string()),
@@ -1014,6 +1019,7 @@ async fn test_graph_search__undirected_path_query(pool: PgPool) -> anyhow::Resul
1014
1019
  }),
1015
1020
  relation: Some(graph_query::Relation {
1016
1021
  value: Some("IS_FRIEND".to_string()),
1022
+ ..Default::default()
1017
1023
  }),
1018
1024
  destination: Some(graph_query::Node::default()),
1019
1025
  undirected: true,