2012-07-25 2 views
4

내 시스템은 stackoverflow와 유사합니다. 기본적으로 게시물에는 여러 개의 태그가있을 수 있으며 검색어와 일치하는 게시물을 찾는 검색 기능이 있습니다 (모든 태그는 일치해야합니다)알고리즘과 일치하는 태그가 있습니까?

게시물 태그 지정 문제를 해결하는 알고리즘/데이터 구조가 있는지 궁금합니다./효율적으로 검색 하시겠습니까? 어느 것이 속도면에서 가장 효율적입니까 (시간 복잡성)?

+1

"반전 된 인덱스"유용 할 수 있습니다. "그리고 대부분은 별도의 태그 테이블을 갖게 될 것이고 개별 포스트는 여러 개의 태그가 링크되어있을 수 있습니다 (키를 사용하여)"@abhinav가 설명한 바와 같이 널리 사용되는 방법입니다. – mayankcpdixit

답변

0

검색을 위해 이러한 종류의 데이터를 저장하는 가장 효율적인 방법은 보통 Inverted index입니다. 이것은 또한 가장 일반적인 검색 엔진/정보 검색 시스템이 구축 된 것입니다.

실제로 구현하려면 Apache Lucene을 살펴 보시기 바랍니다.

2

과거에는이 용도로 특수 DS를 사용하지 않았습니다. 사실, RDBMS에서이 작업을 수행하려면 how Wordpress do this using taxanomies의 정보를 읽어보십시오. 주로 개별 태그 테이블을 가지게되고 개별 게시물에 여러 개의 태그가 연결될 수 있습니다 (키 사용).

또 다른 인기있는 접근법은 문제를면 처리 문제로 보는 것입니다. 전체 텍스트 인덱싱 프레임 워크를 사용하고 그 위에 패싯 브라우징을 개발해야합니다. 이 바로 그 경우를 설명하는 Here is an excellent post from the creator of Lucene/Solr. 패싯 브라우징을 사용하면 stackoverflow가 수행하는 작업을 표시 할 수 있습니다.

algorithm × 21165 
search × 8863 
data-structures × 5867 
tags × 2886 
stackoverflow × 721 
관련 문제