Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

OrientDB: FullText indexes vs Lucene FullText indexes

OrientDB has two types of full-text indexes: one is their own implementation and the second one is Lucene implementation. However it is absolutely unclear what I should use.

I understand that Lucene provides more features. However what if these features are not required. Should I go with standard full-text indexes or with Lucene? Then obviously performance is the main question.

like image 854
Anton Zherdev Avatar asked Feb 04 '16 07:02

Anton Zherdev


1 Answers

The indices "FULL TEXT" with engine LUCENE provides good full-text indexes, but cannot be used to index other types. It is durable, transactional and supports range queries. More information about lucene see link.

The indices "FULL TEXT" with engine SB-TREE the index is created with the algorithm that is based on the B-Tree index algorithm. It has been adapted with several optimizations, which relate to data insertion and range queries. As is the case with all other tree-based indexes, SB-Tree index algorithm experiences log(N) complexity, but the base to this logarithm is about 500. This indexing algorithm provides a good mix of features, similar to the features available from other index types. It is good for general use and is durable, transactional and supports range queries.

a simple example that compares the speed:

  • DB one: 100000 top of Class Person with property name with value "the name is 1...n " and Lucene index on this property

  • DB one: 100000 top of Class Person with property name with value "the name is 1...n " and sbtree index on this property

On one db: select from Person where name LUCENE "49000" return one record --> Query executed in 0.039 sec.

Db on two: select from Persona where name = "49000" return one record --> Query executed in 1.364 sec

like image 65
lsavio Avatar answered Nov 15 '22 11:11

lsavio