문제가 있으며 사소한 것처럼 들리지만 간단하고 확장 가능하고 효율적인 솔루션을 찾기 란 쉽지 않습니다. 웹 사이트 사용자가 위치를 검색 할 수있는 입력 텍스트가 하나 있습니다.문자열 내부의 블록의 의미 론적 가치를 찾는 데 팁이 필요합니다.
오늘 위치는 도시, 도시의 도시 또는 도시의 주소 일 수 있으며 사용자는 쉼표를 사용하여 도시에서 주소 또는 이웃을 도시와 분리해야합니다. 그러면 문자열을 쉽게 분할 할 수 있습니다 첫 번째 블록이 주소, 이웃 또는 도시인지 확인하십시오. 사용자가 필요한 모든 정보로 입력 내용을 채우지 못하고 도시가없는 주소를 입력하고 동일한 이름을 가진 거리와 일치하는 경우, 우리는 그 사람이 올바른 위치를 선택하도록 모든 위치를 표시합니다.
검색 로그를 사용하면 대부분의 사용자가 위치 검색 (thx google : p)을 사용하는 방법을 알려주는 모든 도구 설명과 함께 쉼표를 사용하지 않는다는 것을 알 수 있습니다.
그래서, 위치 검색에 대한 새로운 요구 사항은 같은 비 쉼표로 구분 된 주소, 받아 들일 필요하다 :
1. "5th Avenue"
2. "Manhattan"
3. "New York"
4. "5th Avenue Manhattan"
5. "5th Avenue Manhattan New York"
6. "Manhattan New York"
7. "5th Avenue New York"
을하지만 각 블록 또는 동적의 의미를 찾을 수있는 방법을 찾을 수 없습니다 이 일을하는 방법. 즉, "New Yok"과 같은 문자열을 얻으면 "new"는 주소가 될 수 있고 "york"는 도시가 될 수 있습니다.
내 질문은, 내가 원하는 것을 얻기 위해 기술이나 프레임 워크를 사용하고 있습니까? 아니면 구체적으로 할 알고리즘 (단어, 쉼표 등의 수를 기준으로)을 사용하여 작업해야합니까?
EDIT1 :
나는 SQL 서버를 사용하기 때문에, 나는 정확한 나중에 전에 정확히 일치를하고 아닌, 전체 텍스트 검색을 여러 열 검색에 대해 생각하고. 하지만 일부 불완전한 주소는 수천 개의 행을 반환합니다.
당신이 세계 accros 모든 주소에 대한 일반적인 솔루션을 찾고 :
확인, 일반 전략을 확장? 또는 검색에 제약 조건을 적용 할 수 있습니까? 즉 : 미국 기반 주소에만 관심이 있습니다. –
국가마다 다릅니다. – user1330271
데이터베이스/모든 도시의 목록을 유지하고 입력 된 마지막 부분을 해당 도시 목록과 비교하는 방법은 어떻습니까? –