Al usar ElasticSearch NEST, tengo problemas para obtener los resultados esperados de mis consultas. Mi diseño de índice/tipo es el siguiente:
Cada uno de esos tipos tiene sus propios campos, y estoy usando el método Index() de NEST para indexar los datos. Puedo verificar que está siendo indexado correctamente por:
http://localhost:9200/theatres/_mappingComo referencia, aquí está la configuración de mi cliente:
// TODO: Put settings in config var node = new Uri("http://localhost:9200"); var connSettings = new ConnectionSettings(node); connSettings.SetDefaultIndex("theatres"); connSettings.ThrowOnElasticsearchServerExceptions(); var client = new ElasticClient(connSettings);La consulta
Ahora, para la consulta, quiero buscar todos los tipos y todos los campos dentro del índice. Usando el complemento Head, puedo generar la consulta y obtener los resultados esperados:
Usando esa consulta que generó, probé la siguiente consulta NEST:
var query = "waukesha"; // This would be passed in var resp = client.Search<dynamic>(s => s .From(0) .Take(10) .Query(qry => qry .Bool(b => b .Must(m => m .QueryString(qs => qs .DefaultField("_all") .Query(query))))));Sin embargo, esto me da un resultado diferente. ¿NEST está haciendo algo tras bambalinas que no conozco? ¿O esto no es compatible?
Falta su consulta .AllTypes()
También puede especificar varios tipos usando .Types("type1", "type1")
Asi que:
var query = "waukesha"; // This would be passed in var resp = client.Search<dynamic>(s => s .AllTypes() .From(0) .Take(10) .Query(qry => qry .Bool(b => b .Must(m => m .QueryString(qs => qs .DefaultField("_all") .Query(query))))));