¿Puede indicar cómo realizar búsquedas simples de texto completo en RavenDb. La base de datos está almacenada documento: Película {Name = "Pirates of the Carribean"}. Desearía que este documento se haya encontrado en la frase de búsqueda "Piratas del Caribe" o en cualquier otra combinación de palabras.RavenDB búsqueda de texto completo
Respuesta
Lo que se está preocupando no es nada que ver con el texto completo - por defecto Lucene funciona sobre una base O y lo que quiere es una Y
Si yo fuera tú me gustaría hacer
String[] terms = searchTerm.Split(" "); // Or whatever the string.split method is
y
.Where("Name:(" + String.Join(" AND ", terms) + ")");
Su índice debe ser algo como
public class Movie_ByName : AbstractIndexCreationTask
{
public override IndexDefinition CreateIndexDefinition()
{
return new IndexDefinitionBuilder<Movie>
{
Map = movies => from movie in movies
select new { movie.Name, market.Id },
Indexes =
{
{x => x.Name, FieldIndexing.Analyzed}
}
}
.ToIndexDefinition(DocumentStore.Conventions);
}
No necesita almacenamiento, no está solicitando los datos de lucene directamente en cualquier momento. Puede que incluso no desee un índice (es posible que desee realmente FieldIndexing.Analyzed, y puede escaparse usando solo consultas dinámicas aquí)
Depende de usted.
Boris, La respuesta de Rob tiene el índice correcto, pero es un poco incómodo para consultar. Usted puede hacer eso usando:
session.Query<Movie, Movie_ByName>()
.Search(x=>x.Name, searchTerms)
.ToList()
que la voluntad
Eso va a ... ??? –
@RonnieOverby Y ese fue el momento en que fue comido por un oso. – ehdv
... trabajo. <- una suposición. –
Así es como me acheived un "AND" término de búsqueda.
En primer lugar, asegúrese de que su campo se indexa y se analizó:
public class MyIndex: AbstractIndexCreationTask<MyDocument>
{
public MyIndex()
{
Map = docs => from d in docs
select new { d.MyTextField };
Index(x => x.MyTextField, FieldIndexing.Analyzed);
}
}
después realizar una consulta desde el cliente:
var query = session.Query<MyDocument, MyIndex>();
query = theSearchText
.Split(new[] {" "}, StringSplitOptions.RemoveEmptyEntries)
.Aggregate(query, (q, term) =>
q.Search(x => x.MyTextField, term, options: SearchOptions.And));
- 1. Sunspot/Solr Búsqueda de texto completo: ¿cómo excluir ciertos campos de la búsqueda de texto completo?
- 2. Búsqueda de texto completo de SQL Server
- 3. Ranking de búsqueda de texto completo
- 4. mongodb estrategia de búsqueda de texto completo
- 5. Imprimación de búsqueda de texto completo?
- 6. búsqueda de texto completo en LINQ
- 7. Búsqueda de texto completo en CRM 2011
- 8. Búsqueda de texto completo ignorando los comentarios
- 9. Búsqueda de texto completo: Whoosh Vs SOLR
- 10. Django MySQL búsqueda de texto completo
- 11. búsqueda de texto completo instalado o no
- 12. Búsqueda de texto completo para Rails 3
- 13. MySQL búsqueda de texto completo varias palabras
- 14. Búsqueda de texto completo en SQL Azure
- 15. ¿Microsoft Access tiene búsqueda de texto completo?
- 16. Cassandra búsqueda de texto completo como
- 17. Búsqueda de texto completo como Google
- 18. ¿Búsqueda de texto completo más rápido hoy?
- 19. búsqueda rápida de texto completo en Windows Phone 7
- 20. búsqueda de subcadenas en RavenDB
- 21. Búsqueda de texto completo de MySQL Confusión de modo booleano
- 22. Índices de búsqueda de texto completo de SQLite
- 23. Búsqueda de texto completo de Postgres en varias tablas relacionadas
- 24. Catálogo de texto completo/búsqueda de índice% libro%
- 25. Búsqueda de texto completo de PostgreSQL y MySQL
- 26. búsqueda de texto completo de mysql no devolviendo registros
- 27. MySQL búsqueda de texto completo plural/singular de las palabras
- 28. Búsqueda de texto completo de MySQL vs Me gusta %%
- 29. MySQL Resultado de búsqueda de texto completo Explicación
- 30. Postgresql búsqueda de texto completo parte de las palabras
O searchTerm.Replace (" "" Y"), aunque tal vez es posible que desee desconfiar de las entradas vacías y todo eso. –
¿El mercado/texto de mercado sobra de una copia pegada por casualidad? –
Sí, utilicé la otra pregunta como un ejemplo –