Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

fast full text search on windows phone 7

How can I do very fast full text search on windows phone 7?

I know of C libraries that can do this- is there any way I can interface to a C library for this?

Are there any databases for windows phone 7 that offer full text searching capability? Besides the databases mentioned in the answers, I have also come across RavenDB and FileDB, which don't have full text search.

Are there options for a .NET library for full text searching? I have come across a .NET port of the Lucene project, which would have to be ported to use Isolated Storage. There is a port that uses Azure, but that isn't what I am looking for.

like image 534
Greg Weber Avatar asked May 31 '11 17:05

Greg Weber


1 Answers

In most applications it would be best to have the documents stored on a server and use a web service to perform the full text search server-side. The phone is severely limited in terms of processing power, storage space, and IO speed, so unless you are using a very small data set you may quickly outgrow the resources available on the device.

That being said, it does not appear that any of the existing database solutions for Windows Phone support full text searching. The Sterling database engine is one of the more popular options with many standard database features, but as of right now it does not support full text searching. Rapid Repository and siaqodb are other options, however they also do not currently support full text searching. Someone has ported SQLite to Windows Phone 7, but it is based on the csharp-sqlite project, which does not support the SQLITE_ENABLE_FTS3 compiler option that is required for Full Text Searching. The next Windows Phone release code named Mango will provide developers with access to Microsoft SQL Server Compact edition, however this also does not support full text searching.

I believe your only option would be to take a .NET managed full text search engine like Lucene.net and try to port it to work in Silverlight. You would need to do a lot of refactoring, since Silverlight only allows access to Isolated Storage and not direct access to the file system. There also is strict limits on memory usage (90MB max RAM usage per app), which again will limit the size of the data-set you can use on the phone.

like image 140
Greg Bray Avatar answered Oct 09 '22 23:10

Greg Bray