DEV Community

Discussion on: Implementation of full text search on Android

Collapse
 
node profile image
Chris Yang

Good comment.
Actually I need "Plan C" because Lucene is good but not good for Android , while fts3/fts4 is good but not friendly to a search developer in my opinion.
This month we tried Lucene on Android and it looked like everything is ok .Maybe we are lucky. But when we hope to improve the search result include recall rate and rank , we found it was so hard since Lucene is just a library not a search solution.

Collapse
 
peaceoff profile image
David Azevedo

I forgot to mention, but also what about elastic? Did you considered it?

Thread Thread
 
node profile image
Chris Yang • Edited

Really good idea that's worth trying. Actually as a search engineer I use ELasticsearch on server side widely :)

Collapse
 
peaceoff profile image
David Azevedo

I'm actually investigating different solutions for offline fts on android and as of now my best options are exactly those two.
Lucene looks to be good for android, so I don't understand your statement of "not good for Android".
I think lucene is good but its the extra "weight" that it adds to the app over sqlite fts that I am not so sure about.
What do you mean with "fts3/fts4 is good but not friendly to a search developer"?

Thread Thread
 
node profile image
Chris Yang

There is a specific scene for us --- we are building a local search engine for the whole Android system not only for one app.
For Lucene which version should I use ? That's a question,and the only way to fix is testing and testing again. While for fts3/fts4 in my opinion the index and search API is not friendly to developer at least not better than Lucene.

Thread Thread
 
peaceoff profile image
David Azevedo

I haven't looked into versions that much, but I'd go with the latest stable.
Yeah, fts3 and fts4 are the most basic, Lucene as a lot and I mean a lot of features. As your work is directly on android and not just an app, I guess you should go for Lucene given that is the more complex option. For an app, I think it depends on the purpose obviously.
FTS keeps the code more native and lightweight while still giving good results. Lucene as much more features which could be interesting like ranked search and such. but at the same time, it requires more disk space due to redundancy.