2010-07-29 6 views
0

URL을 저장하고 이러한 URL과 관련된 특정 키워드 집합을 유지 관리하는 구성 요소를 개발 중입니다. http://www.imdb.com 키워드 : 예 -키워드로 URL 저장하기 - 가장 좋은 방법은 무엇입니까?

URL을 검색, 영화, 영화 인덱스,

키워드 자체가 수에 의해 제한되지 않습니다를 검토합니다. URL의 수는 10K에서 100K 사이의 범위에서 매우 많을 수 있습니다. URL을 키워드와 연결하고 저장하는 가장 좋은 방법은 무엇입니까? 키워드 별 검색 및 키워드 조합을 기반으로하는 목록을 지원해야합니다. 나는 확실히 관계형 DB를 사용하는 좋은 방법이 아니라고 느낍니다.

아마도 내 질문은 "검색 엔진 작동 방식"으로 요약됩니다. 하지만 나는 더 구체적인 정보를 찾고있다. 키워드를 저장하고 색인을 생성 할 수있는 도구가 있는가? 아파치 루씬 (Apache Lucene)에 대해 들어 봤는데, 그것은 풀 텍스트 검색 엔진에 가깝습니다.

키워드를 기사와 연관시키기 위해 내부적으로 stackoverflow는 무엇을 사용합니까?

+0

필요에 따라 Apache Solr (Lucene 기반)을 찾아야합니다. 그것은 당신이 필요로하는 것을 정확히합니다. – Mikos

답변

1

정말 정규화 된 데이터베이스 디자인을 사용해야합니다.

각각이 URLIDURLS의 표. 독특한 KEYWORDIDKEYWORDS, 각각의 테이블, 그리고 마지막으로 테이블은 열 KEYWORDID와 함께, 그들이 공유하는 관계, TABLE_URL_KEYWORDS을 설명하고 많은 KEYWORDS 관계 한 URL 함께 두 가지를 연결 URLID합니다.

성능에 대해 걱정할 필요가없는 훌륭한 데이터베이스 시스템은 이러한 종류의 작업에 매우 빠르며 정규화 된 형식을 염두에두고 특별히 설계되었습니다. 100k URLS과 100k KEYWORDS이 있으며 400K 관계 레코드는 널리 사용되는 모든 데이터베이스 시스템에서 완벽하게 관리 할 수 ​​있습니다.

IE가 비정상적으로 다른 경로를 따라 간다면 엄청난 엉망이되어 버릴 수 있습니다. 또는 나중에 다른 사람을 분류하거나 시간을 낭비 할 수 있습니다. StackOverflow가 설명 된 것과 기본적으로 동일한 형식으로 데이터를 저장한다는 사실에 많은 돈을 쏟을 것입니다.

+0

글쎄 ... 비록 포스터가 문제를 다시 일으킬 것입니다 : 구글, 이제 httpS://www.google.com 살아있다. – NinjaCat

+0

OP의 경우 사이트의 설명을 변경하지 않기 때문에 URL에서 프로토콜을 제거 할 수 있다고 생각합니다. 그러나 그가 중요하다고 결정하면 각 프로토콜을 별개의 URL 항목 (가장 단순하거나 가장 좋음)으로 취급하거나 완전히 정규화 할 수 있으며 그 중 몇 가지 방법이 있으며 모두가 조금 더 복잡한. –

관련 문제