2011-05-31 16 views
7

¿Cómo puedo hacer una búsqueda de texto muy rápida en Windows Phone 7?búsqueda rápida de texto completo en Windows Phone 7

Conozco las bibliotecas C que pueden hacer esto. ¿Hay alguna forma de que pueda interactuar con una biblioteca C para esto?

¿Hay alguna base de datos para Windows Phone 7 que ofrezca capacidad de búsqueda de texto completo? Además de las bases de datos mencionadas en las respuestas, también he encontrado RavenDB y FileDB, que no tienen búsqueda de texto completo.

¿Hay opciones para una biblioteca .NET para la búsqueda de texto completo? Me he encontrado con .NET port of the Lucene project, que debería ser ported to use Isolated Storage. Hay a port that uses Azure, pero eso no es lo que estoy buscando.

+0

¿Qué desea buscar? ¿Hay alguna razón por la que está poniendo mucho contenido para buscar de esta manera en un dispositivo? ¿No podría simplemente poner el contenido en un servidor basado en web y solicitar los datos buscados desde allí. Sería (debería) mucho más rápido buscar una gran cantidad de datos en una máquina, lo que implica la potencia de procesamiento y los recursos disponibles para tal tarea. –

+0

Confiar en un servicio web para la funcionalidad central parece excelente hasta que el teléfono tenga una recepción escamosa. ¿Has usado una buena herramienta de búsqueda de texto completo? No requieren mucho uso de CPU o memoria porque precomputan un índice invertido. Siempre que el índice se ajuste a un dispositivo móvil, el rendimiento debería ser mucho mejor que esperar a que la latencia de la red llame a un servicio web. En mi caso, el motor de búsqueda de texto completo de sphinx (código C) solo necesita 7M de disco para mi conjunto de datos. –

Respuesta

2

Por lo que puedo decir, parece que Perst permite la búsqueda indexable de texto completo. No estoy seguro de que sea exactamente lo que quieres, pero échale un vistazo.

http://mobileworld.appamundi.com/blogs/andywigley/archive/2010/06/08/perst-a-database-for-windows-phone-7-silverlight-part-2.aspx

+0

Impresionante, a excepción de los $ 395 por licencia de desarrollador. Realmente es excesivo para una simple aplicación móvil que puede no recuperar ese dinero. Tenga en cuenta que Prest es gratuito para uso de código abierto. –

+0

Sí, no lo vi al principio ... Parece un poco empinado. – Webs

3

En la mayoría de las aplicaciones que lo mejor sería tener los documentos almacenados en un servidor y utilizar un servicio web para realizar el lado del servidor de búsqueda de texto completo. El teléfono está severamente limitado en términos de potencia de procesamiento, espacio de almacenamiento y velocidad de E/S, por lo que a menos que esté utilizando un conjunto de datos muy pequeño, es posible que supere rápidamente los recursos disponibles en el dispositivo.

Dicho esto, no parece que ninguna de las soluciones de bases de datos existentes para Windows Phone sea compatible con la búsqueda de texto completo. El Sterling database engine es una de las opciones más populares con muchos estándar database features, pero a partir de ahora no es compatible con full text searching. Rapid Repository y siaqodb son otras opciones, sin embargo, actualmente tampoco son compatibles con la búsqueda de texto completo. Alguien ha portado SQLite to Windows Phone 7, pero está basado en el proyecto csharp-sqlite, que no admite la opción del compilador SQLITE_ENABLE_FTS3 que se requiere para Full Text Searching. El próximo código de lanzamiento de Windows Phone llamado Mango proporcionará a los desarrolladores acceso a la edición Microsoft SQL Server Compact, sin embargo, esto tampoco es compatible con full text searching.

Creo que su única opción sería tomar un motor de búsqueda de texto completo administrado .NET como Lucene.net y tratar de portarlo para que funcione en Silverlight. Debería realizar muchas refacciones, ya que Silverlight solo permite el acceso a Almacenamiento aislado y no el acceso directo al sistema de archivos. También existen límites estrictos para el uso de la memoria (90MB max RAM usage per app), que de nuevo limitarán el tamaño del conjunto de datos que puede usar en el teléfono.

+0

Muchas gracias por la descripción de las posibilidades. El consumo de memoria de una buena herramienta de búsqueda debe ser al menos configurable para que sea mucho menor que 90 MB. El límite estaría en el espacio del disco, no en la memoria. De todos modos, tengo un conjunto de datos de tamaño razonable (7 MB) que no crecerá. La búsqueda de texto completo no requiere muchos recursos en general porque utiliza un índice invertido calculado previamente. –

+0

En ese caso, todo lo que necesita es un algoritmo de índice invertido basado en C#. Tal vez vea si esta pregunta tiene pistas: http://stackoverflow.com/questions/2110142/writing-an-inverted-index-in-c-for-an-information-retrieval-application –