Our organization has point address data that can have any combination of address, building, and unit. Some examples are:
|345 W Some Bl||345 W Some Bl|
|345 W Some Bl||A||#A||345 W Some Bl #A|
|345 W Some Bl||1||#1||345 W Some Bl #1|
|345 W Some Bl||A||1||#A-1||345 W Some Bl #A-1|
I want to clarify that the "Address" field depicted above does have separate fields for house number, Prefix Direction, Street Name, Suffix Type, and, Full Street Name.
I'm trying to interpret the locator role fields but I'm not quite sure if I'm configuring this correctly. I was able to use use several locators (with different fields for unit) in a composite locator to get the results I want but that seems overly complex and redundant. To further complicate matters, it would be ideal if the locator could match the address with or without some unit qualifier ("#" or "Bldg" or "suite" etc).
It's my understanding you have to include '#' for a unit qualifier, which is mystifying to me as well.
I've never used anything more than a Unit ID in a locator; that's as far as our data goes. IMHO this is one of those ESRI geocoding buns that needs a little more time in the oven. Sorry, not much help.
Given the data illustrated above, if you build the locator where you map Building to the Building Unit locator role field and Unit to the Unit locator role field you would be able to search for the following with the best results returned when an indicator is included, otherwise, the address is matched to the record in the data that returns the highest score:
- 345 W Some Bl #A > 345 W Some Bl, Building A = Match_addr
- 345 W Some Bl #1 > 345 W Some Blvd, #1 = Match_addr
- 345 W Some Bl #A1 > 345 W Some Bl, #1, Building A = Match_addr
- 345 W Some Bl, A > 345 W Some Bl, Building A = Match_addr
- 345 W Some Bl,1 > 345 W Some Blvd, #1 = Match_addr
- 345 W Some Bl, A1 > 345 W Some Bl, #1, Building A = Match_addr
If you build the locator where you map the BuildingUnit field to the Unit locator role field you will be required to enter the subunit value with a unit indicator before the value in order to get a match. If you dropped '#' from the value in the BuildingUnit field, then mapped it to the Unit locator role field you would be able to search for the subunit with or without the indicator.
We've added an option to allow subaddress suggestions before the entire unit value has been entered. Typing in the unit type, such as Apt, Unit, Suite, # is also optional. The locator will need to be created in Pro 2.9 and published to ArcGIS Enterprise 10.9.1. This new option, Suggestions for partial subaddresses, is disabled by default but can be enabled, as well as configure the number of suggestions returned, in the Locator Properties Dialog. If you are part of the Early Adopter Community or have access to ArcGIS Pro 2.9 Beta1 you can test out the functionality and provide any feedback.
Thank you very much for the information @ShanaBritt. I recreated the locator as you described. The results were better than what I had before but still not quite there. Addresses like "345 W Some Bl #A-1" did not match. The dash is part of our official "full address" so that's the most likely way they will be coming in.
We previously solved this (in ArcMap) by making a composite locator with to subaddress locators: one with building and one with unit. I expect creating a similar composite locator in ArcGIS Pro will also achieve the same results. Do you have any other suggestions to try before I do that?
I'm looking forward to the subaddress suggestion enhancements in 2.9. We're on ArcGIS Pro 2.8 and server 10.8.1 right now. I work for a local government and so our technology don't come quickly so we might not be a good candidate for beta testing but I'll keep it in mind.
I created a locator in Pro 2.8.2 using data similar to what you have described and was able to search for a hyphenated unit successfully. I did not use the ADDRUNTTYP field in the screenshot below when building the locator. Are you not getting matches with the local locator or when it's published as a service or both?