То, что вас беспокоит, не имеет ничего общего с полным текстом - по умолчанию Lucene работает на основе ИЛИ, и вам нужно AND
На твоем месте я бы сделал
String[] terms = searchTerm.Split(" "); // Or whatever the string.split method is
и
.Where("Name:(" + String.Join(" AND ", terms) + ")");
Ваш индекс должен выглядеть примерно так:
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);
}
Вам не нужно хранилище, вы не запрашиваете данные непосредственно у lucene в любое время. Возможно, вы даже не захотите индексировать (вы можете на самом деле захотеть FieldIndexing.Analyzed, и можете просто использовать здесь динамические запросы)
Впрочем, до вас.