확장 성있는 전체 텍스트 검색을 생성하고 사용자별로 정렬해야하는 결과가있는 옵션에는 어떤 것이 있습니까? 이것은 PHP/MySQL (Symfony/Doctrine도 관련이있다)을위한 것이다.사용자 별 결과 확장 가능 전체 텍스트 검색
여기에는 사용자가 수행 한 운동 데이터베이스가 있습니다. 사용자가 이전에 해본 운동은 결과 상단에 나타나야합니다. 운동을 자주 마칠수록 검색 결과에 나타나는 운동이 높아집니다. 도움이된다면 사용자가 사전에 운동을 한 횟수를 알고 있다고 가정 할 수 있습니다.
가능한 해결책
스핑크스를 - 사용 스핑크스, 전체 텍스트 검색을 구현하는 모든 질의와 MySQL에 정렬 할 수 있습니다. 이것은 유망한 것으로 보인다 (그리고 Symfony Plugin이있다!) 그러나 나는 그것에 대해 많이 모른다.
Lucene - 전체 텍스트 검색을 수행하고 사용자의 완료를 쿼리에 넣으려면 Lucene을 사용하십시오. this Stack Overflow thread에 나와 있습니다. 또는 Lucene을 사용하여 결과를 검색 한 다음 PHP로 다시 정렬하십시오. 그러나 사용자가 수백 가지 운동을 완료했을 때 두 솔루션 모두가 어색하고 잠재적으로 확장 할 수없는 것처럼 보입니다.
Mysql - 기본 전체 텍스트 지원 (InnoDB)이 없으므로, 확장 성이없는 LIKE 또는 REGEX를 사용해야합니다.
사용자는 몇 백 개만 완료했지만 총 수십만 개의 운동을 지원해야합니다. Solr/Lucene을 사용하여 수백만 회의 운동을 검색 한 다음 결과의 순서를 바꾸라고 제안 하시겠습니까? 일부 검색은 레코드의 상당 부분을 반환 할 수 있습니다. –