2008-10-29 4 views
1

현재 작업하고있는 웹 응용 프로그램에서 검색 기능을 강화하기 위해 Lucene.NET을 사용하려고합니다. 그러나 구현하려는 검색 기능은 전체 텍스트 검색을 수행 할뿐만 아니라 지정된 주소에 근접하여 결과의 ​​순위를 매길 필요가 있습니다.ASP.NET에서 위치 정보를 사용하여 검색 기능을 구현하는 방법은 무엇입니까?

Lucene.NET이이 요구 사항을 처리 할 수 ​​있습니까? 또는 다른 위치 (예 : 5 마일 미만, 10 마일 미만)에 히트를 그룹화하는 방법을 구현 한 다음 Lucene.NET을 사용하여 해당 그룹 내의 항목의 순위를 매길 필요가 있습니까? 아니면 완전히 다른 방식으로 내가 간과하고있는 것입니까?

답변

0

원하는 것을 공간 검색이라고합니다. Lucene.Net에 확장 기능이 있는지 확실하지 않지만 NHibernate Spatial을 살펴볼 수 있습니다. 그 외에도 이러한 쿼리는 종종 데이터베이스 내에서 수행됩니다. 최소한 PostGreSQL, MySQL 및 SQL Server 2008에는 공간 쿼리 기능이 있습니다.

0

추가 조사가 끝나면 내 대답을 찾은 것 같습니다. Lucene.NET을 사용하여 다른 요인으로 검색 결과를 필터링 한 다음 Google 또는 Yahoo의 지오 코딩 된 정보를 사용하여 결과를 거리별로 정렬합니다.

2

사용자 정의 스코어러를 구현하여 거리 순서대로 결과의 순위를 매길 수 있지만 효율성을 높이려면 결과를 필터링해야합니다. 경계 상자 방법을 사용하여 주소 주변 20 밀리의 사각형으로 결과를 필터링 한 후 순위를 적용 할 수 있습니다.

내가 기억이 나지 않는 경우, 행동 책의 lucene에는 거리 관련 알고리즘의 예가 있습니다. 그것은 자바 lucene지만, API는 동일하고 당신은 쉽게 C# 또는 VB.NET으로 번역 할 수

관련 문제