마이크로 블로그 웹 앱에 "해시 태그 지원"을 추가하고 있습니다. 트위터, 구글 +, 페이 스북 및 공동처럼. 내 앱 사용자는 자신의 메시지에 해시 태그를 추가 할 수 있습니다. 해시 태그는 모든 관련 메시지를 나열하는 검색 페이지를 가리키는 html 앵커로 변환됩니다. Now "Trending Hashtags"도 표시하고 싶습니다..트렌드 해시 태그 추적하기
메시지는 user_id 및 일부 meta_data와 함께 MySQL 테이블 (InnoDB)에 저장됩니다.
나는 추세 HT의 처리하기 위해 다음과 같은 방법에 대해 생각했다:
메시지에서 해시 태그를 추출;
DB를 레코드 (공간 분리 문자열)에 별도의 행에 그들을 저장<?php preg_match_all('/(#\w[\w\d]+)/', $message, $ht_matches); $hashtags = array_unique($ht_matches[1]); $hashtags_str = implode(' ', $hashtags);
;
e.g. #SanFrancisco #Boeing777 #AirplaneAccident --- --- Table 'messages' --- +----+------------+--------------------------------------------+-----+ | id | message | hashtag | ... | +----+------------+--------------------------------------------+-----+ | 1 | ... | #SanFrancisco #Boeing777 #AirplaneAccident | ... | +----+------------+--------------------------------------------+-----+
저장소 별도 테이블의 각 해시 그렇지 않으면 메타 데이터와 함께 존재한다;
--- --- Table 'message_hashtags' --- +----+---------------------+------------+---------------------+---------------------+ | id | hashtag | messages | created_at | updated_at | +----+---------------------+------------+---------------------+---------------------+ | 1 | #SanFrancisco | 1465 | 0000-00-00 00:00:00 | 0000-00-00 00:00:00 | +----+---------------------+------------+---------------------+---------------------+ | 2 | #Boeing777 | 294 | 0000-00-00 00:00:00 | 0000-00-00 00:00:00 | +----+---------------------+------------+---------------------+---------------------+ | 3 | #AirplaneAccident | 1721 | 0000-00-00 00:00:00 | 0000-00-00 00:00:00 | +----+---------------------+------------+---------------------+---------------------+ id int not null autoincrement hashtag char(20) not null messages int not null default 0 created_at timestamp not null updated_at timestamp not null default '0000-00-00 00:00:00'
쿼리 추세 해시 태그를 가져올 수있는 DB, 예컨대 :이 모든 이론적
SELECT id FROM message_hashtags WHERE messages > 1 ORDER_BY messages LIMIT 10
. 이 설정은 장기간에 잘 수행됩니까? 나쁜 성능과 어색함을 유발할 수있는 병목 현상과 스토리지 문제가 우려됩니다. 나는 이것을 조숙 한 최적화라고 생각하지 않는다. 왜냐하면 만약 내가 지금 올바른 방법으로 그렇게하지 않는다면, 가능하다면 나중에 많이 바꿀 필요가 있기 때문이다.
해시 태그가 많이 사용되는 주제이기 때문에 일부 사용자는 HT 및 관련 검색을 처리 한 경험이 있다고 가정합니다.
해시 태그를 사용하여 작업하는 다른 방향을 제시하는 제안과 정보에 대해 열려 있습니다.
위대한 질문에 대해 축하 드리고 싶습니다. – Sikian