[ 
https://issues.apache.org/jira/browse/LUCENE-10054?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17401172#comment-17401172
 ] 

Mayya Sharipova edited comment on LUCENE-10054 at 8/18/21, 4:12 PM:
--------------------------------------------------------------------

Proposed .vem index file structure:

 
{code:java}
+-------------+--------+----------+----------+----------+---------+------+-------+
| FieldNumber | SimFun | VDOffset | VDLength | VIOffset | VILength| dims | 
docIds
+-------------+--------+----------+----------+----------+---------+------+-------+-

-----------+--------------+-----+------------+---------------+-----+------------+
LevelsCount| SizeLevelmax | ... | SizeLevel0 | NodesLevelmax | ... | NodesLevel1
-----------+--------------+-----+------------+---------------+-----+------------+

----------------------+-----+--------------------+
 graphOffsetsLevelmax | ... | graphOffsetsLevel0 |
----------------------+---- +--------------------+
{code}
 

LevelCount - number of levels

SizeLevelmax, ..., SizeLevel0 - number of nodes of each level

NodesLevelmax, ..., NodesLevel1 - list of nodes on each level from max to 1; it 
not necessary to store nodes on level 0 as this level contains all nodes.

graphOffsetsLevelmax, ..., graphOffsetsLevel0 - graph offsets for corresponding 
levels from max to 0

 

 


was (Author: mayya):
Proposed .vem index file structure:

 
{code:java}
+-------------+--------+----------+----------+----------+---------+------+-------+
| FieldNumber | SimFun | VDOffset | VDLength | VIOffset | VILength| dims | 
docIds
+-------------+--------+----------+----------+----------+---------+------+-------+--+-------------+--------------+-----+------------+---------------+-----+------------+
  | LevelsCount | SizeLevelmax | ... | SizeLevel0 | NodesLevelmax | ... | 
NodesLevel1
--+-------------+--------------+-----+------------+---------------+-----+------------+--+----------------------+-----+--------------------+
  | graphOffsetsLevelmax | ... | graphOffsetsLevel0 |
--+----------------------+---- +--------------------+
{code}
 

> Handle hierarchy in HNSW graph
> ------------------------------
>
>                 Key: LUCENE-10054
>                 URL: https://issues.apache.org/jira/browse/LUCENE-10054
>             Project: Lucene - Core
>          Issue Type: Task
>            Reporter: Mayya Sharipova
>            Priority: Major
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Currently HNSW graph is represented as a single layer graph. 
>  We would like to extend it to handle hierarchy as per 
> [discussion|https://issues.apache.org/jira/browse/LUCENE-9004?focusedCommentId=17393216&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-17393216].
>  
>  
> TODO tasks:
> - add multiple layers in the HnswGraph class
>  - modify the format in  Lucene90HnswVectorsWriter and 
> Lucene90HnswVectorsReader to handle multiple layers
> - modify graph construction and search algorithm to handle hierarchy
>  - run benchmarks



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to