I guess you don't want decompiled code posted here but I can see that version 9.23.0 is doing QueryParser.Escape on the searchPhrase, which 9.21.0 is not. This is probably part of the problem.
This is when NOT using IsFuzzySearch. IsFuzzySearch = false when this error occurs. So one of the 5 lines of code in that branch of buildQuery is breaking my search.
QueryParser.Escape will escape all of the following characters:
+ - && || ! ( ) { } [ ] ^ " ~ * ? : \ /
As you can see my query contains lots of ":". These should not be escaped here. Escaping the entire query is incorrect. That's why it only works to search on the default field(s) now. Since you cannot specify fields like this "fieldName:valueToSearchFor" and values you are looking for in them anymore. If you want to run QueryParser.Escape you have to run it ONLY on valueToSearchFor. Not the full query. This is probably something your customers will have to handle themselves. Not something EPiServer should be trying to do for us.
Conclusion: In EPiServer Commerce 9.23+ you cannot search for values in specific fields. Since you are unable to build queries like that anymore.
Hello Guys,
In EPiServer Commerce 9.21 I could search with this search query and get hits:
itemnumber:0101101
This no longer gets any hits. After some testing it seems I cannot get ANY query to work unless I get a match on the default field(s).
This query gives no hits either:
((itemnumber:0101101* OR itemnumberus:0101101* OR itemnumberalternative:0101101*)) OR ((name:0101101* OR displaydescription:0101101*))
This is the only query that still gives hits (uses all default search field(s)):
0101101*
I have tested with EPiServer Commerce 9.21 in where all of this still works. In EPiServer Commerce 9.23 it's broken.
I can see with BitDiffer 1.5.0.4 that Mediachase.Search.Providers.Lucene.LuceneQueryBuilder.BuildQuery has had it's implementation changed between these versions. I'm pretty sure this is the source of the problem.
Edit: This also works in 9.22.0 and 9.22.1. 9.22.1 -> 9.23.0 is when this broke.