2011-05-10 6 views
5

내 프로젝트의 예.태그 또는 검색 또는 모두

많은 사용자 많은 항목 (트위터의 크기를 생각한다)

나는 매우 쉽게 사용자가 자신의 항목을 검색 할 수 있도록하고 싶다. 질문 : 태그 지정 시스템을 구현하거나 검색 메커니즘 만 구현합니까? 필자는이 주제에 대해 상당한 양의 연구를 수행했으며 특히 스키마가 필요하다는 점에 관해서도 다뤘다. 그러나 나는 아직도 느린 질문이있다.

태그를 사용하는 경우. 이 아이디어는 항목을 단어와 태그에 포함 된 메타 데이터로 제거합니다. 스키마는 mysql 사람들이 추천 한 Toxi (many to many) 일 것이다. 내가 가지고있는 문제는 SEARCH만큼 유연하지 않다는 것이다. 예를 들어 CATS가 태그이지만 CAT가 아닌 경우 TAG가 아니기 때문에 CAT을 "검색"할 수 없습니다. 않는 한, 당신은 또한 태그에 검색을 구현합니다. 어느 시점에서 필자는 성능에 대해 걱정하거나 왜 곧장 검색을 사용하지 않는가? 두 번째 문제는 TAG 복제본과 유사점을 최소한으로 유지하는 것입니다. TAG 가비지 수집.

검색을 사용하는 경우 LIKE 또는 FULLTEXT (myISM은 좋지 않음)를 사용해야하고 항목과 해당 메타 데이터를 검색해야합니다. 이 시나리오에서는 메타 데이터가 데이터와 같은 태그를 저장할 수 있습니다. 이 계획은 훨씬 간단하지만 태그를 사용하는 것보다 성능이 훨씬 더 나빠질 수 있습니다. 그러나 다시 검색하는 것이 더 유연하며 태그를 수집하는 쓰레기에 대해 걱정할 필요가 없습니다.

이제 흥미로운 점은 사람들이 검색 + 태그 지정 방식으로 옮긴 검색 성능을 향상시키기 위해 읽은 것입니다. 항목의 모든 단어에 태그를 달고 태그를 검색합니다. 나는 어쨌든 TAG 시스템으로 어떤 일이 벌어 질지 암시합니다. 이 시점에서 태그 지정과 검색 사이의 줄이 흐릿 해 보이는 것 같아서 혼란스러워집니다. 그래서, 나는 당신이 나를 분류 할 수 있기를 희망하면서 이것을 쓰고 있습니다.

사용자의 힙과 작은 텍스트 항목의 힙이 있습니다. 사용자가 검색 할 수있는 가장 좋은 방법은 무엇입니까? 둘 다 성능 관점뿐만 아니라 사용자 상호 작용 관점에서.

또한이 주제에 대한 추가 정보는 크게 알려드립니다.

건배.

+0

+1 큰 질문입니다. – rkg

답변

1

Sphinx 또는 KinoSearch과 같이이 기능에 대한 전용 검색 엔진을 사용하는 것이 좋습니다. 검색어와 관련하여 최대한의 유연성을 확보하면서 관련 검색 결과를 얻는 것이 자체 사업 (예 : Google 비즈니스)이기 때문에 항상이 업무에 전용 서비스를 사용합니다.

관련 문제