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.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With