Como realizar a pesquisa de vários termos na API do Sitecore 7 ContentSearch?

Eu estou explorando o novoSitecore.ContentSearch API "LINQ to Sitecore" no Sitecore 7. Acredito que a Sitecore recomenda o uso da nova API LINQ sobre o existenteSitecore.Search API, no entanto, estou me esforçando para executar até mesmo a mais simples das consultas.

Tomemos por exemplo a seguinte consulta de pesquisa:"hello world".

Usando oSitecore.Search API, os termos "hello world" normalmente seriam passados ​​por umQueryParser o que resultaria em documentos correspondentes à palavra "olá" OU "mundo". Documentos contendo os dois termos seriam pontuados mais altos do que aqueles com apenas um.

Como se executa essa mesma consulta usando o LINQ?

Aqui está o que eu tentei:

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));
}

ATUALIZAR

Estou convencido de que estou sentindo falta de algo realmente simples. Certamente, com todo o trabalho que foi feito na nova API de pesquisa, esse caso de uso simples não foi esquecido ... certo?

Como solução alternativa, tentei abrir o padrãositecore_web_index usando o SearchManager existente, no entanto, isso não funciona.

Infelizmente, tive que recorrer à API existente até conseguir descobrir isso. Eu vou ter certeza de atualizar esta questão com minhas descobertas.

ATUALIZAÇÃO 2

Eu encontrei oSitecore.ContentSearch.Utilities.LinqHelper classe que parcialmente resolve o problema. Você pode usá-lo para criar dinamicamente uma consulta semelhante a umBooleanQuery No Lucene.Net, no entanto, as opções são limitadas e adicionam um pouco de sobrecarga de desempenho.

questionAnswers(3)

yourAnswerToTheQuestion