I have some issues with a search query. If I fx search for something containing a '+' I don't get any results. I've tried to escape the '+' with "\+" but that doesn't change anything. Can you help me, please?
documentStore.DatabaseCommands.PutIndex("UsersQueryIndex", new IndexDefinition
{
Map = "from user in docs.UserSearchDtos select new { user.Name, user.Email, PhoneNumbers=user.PhoneNumbers.Select(p=>p.PhoneNumber) }",
Indexes =
{
{ "Name", FieldIndexing.Analyzed },
{ "Email", FieldIndexing.Analyzed }
{ "PhoneNumbers", FieldIndexing.Analyzed }
}
}, true);
public IEnumerable<UserSearchDto> Execute(string query)
{
query = string.Format("*{0}*", query);
using (var session = _documentStore.OpenSession())
{
var users = session.Query<UserSearchDto>("UsersQueryIndex")
.Search(x => x.Name, query, escapeQueryOptions: EscapeQueryOptions.AllowAllWildcards)
.Search(x => x.Email, query, escapeQueryOptions: EscapeQueryOptions.AllowAllWildcards)
.Search(x => x.PhoneNumbers, query, escapeQueryOptions: EscapeQueryOptions.AllowAllWildcards).Take(50).ToList();
return users;
}
}
_searchUser.Execute("my+n") //Returns no user. Expected one.
_searchUser.Execute(@"my\+n") //Returns no user. Expected one.
_searchUser.Execute("my") //Returns user as expected
_searchUser.Execute("my n") //Returns user as expected
How do I make the first search queries work?