How to deal with fields in PnP Modern Search that exceeds the 1000 items limit for refiners?
As you might know I work a lot with search and therefore often bump my head against the limitations in Search, such as the limitation for refiners.
On the Search API Microsoft has for performance reasons implemented a hard ceiling of 1000 items per refiner. The default value in PnP Modern Search is 100 items but can be changed to 1000.
So what does that mean for me? In cases where the refinable field exceeds the limit you will only see the first 1000 items in the Refiner field and you will ONLY be able to search "search a value..." among those values.

If you are in doubt how many items each refiner returns you can see this in the browser’s Console tab, and if the limit has been exceeded the warning is in red:

The usual fields that might hit the refiners’ hard ceiling are often some kind of ID field, like CaseId, CustomerID, ProjectID and so on, and they are often autogenerated or originates from a 3rd party system like CRM or ERP.
Currently the recommendations are to:
1) Change the logic design of the search page, commonly using Search Verticals to split it into smaller "chunks" and thus reduce the number of refiner values.
2) Avoid making those fields into refiners, and ask the users to use the Search Box to freetext search for the ID.
Option 1 does work...for awhile, as the number of refiner values tends to increase over time, and thus might exceed the threshold values without you realising it.
Option 2 requires that the end user searches for an ID number in the search box, and the relevance of the returned results might be low as the ID number value might be found in many other fields.
Asking the end user to specify the Managed Property name in the search box , like zfm_CaseID:32323 is a NO-GO in most cases.
Another option could be to boost the results where the search text is found in the ID field, and thus show those rows first. However that might cause search for anything but the ID to become less relevent. ( And currently, Oct 26, it seem like XRANK doesn't work at all so that option is not available).
Introducing another option
How about if we could help the end user to target the search towards a specific Field by introducing the Advanced Search Box:

The basic idea is to exhance the Search Box to show a list of "search scopes" which allows the user to specify whether the search should be "general" or only use a predefinded Field:

In this case the CaseID field is mapped to RefinableString00, but the end user doesn't have to know that, and only need to select to search for "Case ID" in dropdown.
Ideas and feedback is welcome as this is just a draft version I have running on my dev tenant for now,,




Comments