¿Cómo realizar una búsqueda de varios términos en Sitecore 7 ContentSearch API?

Estoy explorando lo nuevoSitecore.ContentSearch API de "LINQ to Sitecore" en Sitecore 7. Tengo entendido que Sitecore recomienda usar la nueva API de LINQ sobre las existentesSitecore.Search API, sin embargo, estoy luchando para realizar incluso las consultas más simples.

Tomemos por ejemplo la siguiente consulta de búsqueda:"hello world".

Utilizando laSitecore.Search API, los términos "hola mundo" normalmente se pasan a través de unQueryParser que daría lugar a documentos que coincidan con la palabra "hola" O "mundo". Los documentos que contienen ambos términos se calificarían más alto que aquellos con solo uno.

¿Cómo se realiza una misma consulta usando LINQ?

Esto es lo que he intentado:

var results = SearchContext.GetQueryable<MyResultItem>();

var terms = searchTerm.Split(' ');

// Not supported exception
results = results.Where(r => terms.Any(t => r.Content.Contains(r)));

// Close, but performs an "AND" between terms, and does not appear
// to score documents properly
foreach (var term in terms)
{
    results = results.Where(r => r.Content.Contains(t));
}

ACTUALIZAR

Estoy convencido de que me falta algo realmente simple. Seguramente con todo el trabajo que se realizó en la nueva API de búsqueda, este simple caso de uso no se pasó por alto ... ¿verdad?

Como una solución, intenté abrir el predeterminadositecore_web_index utilizando el SearchManager existente, sin embargo, esto no funciona.

Desafortunadamente, he tenido que recurrir a la API existente hasta que pueda resolver esto. Me aseguraré de actualizar esta pregunta con mis conclusiones.

ACTUALIZACIÓN 2

Encontré laSitecore.ContentSearch.Utilities.LinqHelper Clase que resuelve parcialmente el problema. Puedes usarlo para construir dinámicamente una consulta similar a unaBooleanQuery En Lucene.Net, sin embargo, sus opciones son limitadas y agregan un poco de sobrecarga de rendimiento.

Respuestas a la pregunta(3)

Su respuesta a la pregunta