특정 테이블에서 50 개 이상의 컬럼 (varchar와 int 모두)을 검색하는 방법이 필요합니다. 사람들이 Lucene과 Sphinx를 추천하는 것을 보았습니다. 그러나 이들을 사용하는 방법에 대한 단서가 없습니다. MySQL의 Full-Text는 16 개 이상의 열 또는 varchar와 int 열 모두를 결합 할 수 없습니다.많은 컬럼에서 PHP와 MySQL 검색하기
2
A
답변
2
변경 사항이 검색에 반영되기 전에 테이블이 많이 업데이트되지 않거나 시간 지연이있는 경우 LONGTEXT
에있는 모든 열을 결합하는 주기적으로 생성 된 파생 테이블을 만들 수 있습니다. 그것에 대한 전체 텍스트 색인.
0
테이블을 피벗하고 약간 잘라내는 것이 좋습니다. 모든 varchar 열을 가져 와서 하나의 테이블 "Search_Strings"에 데이터를 저장하십시오. INT 컬럼에 대해 동일한 작업을 수행합니다
원래 테이블
id
always_field1
always_field2
varstring1
...
varstringx
int1
...
inty
새로운 main_table (원본 테이블 행의 같은 수 있지만, 거의 열)
id
always_field1
always_field2
search_string이 (
id (FK to main_table)
old_column_name
string_value
을
검색 _Ints
id (FK to main_table)
old_column_name
int_value
이 설정을 사용하면 string_value에 대한 전체 텍스트 색인 만 필요합니다. 죄송합니다. 스핑크스 나 Lucene과 관련하여 익숙하지 않아서 제안 할 수 없습니다.
+0
Sphinx를 사용하여이 문자열 테이블의 색인을 생성하려면 "문자열"테이블에 고유 한 ID 키 (시퀀스 생각)가 있어야합니다. cf : http://www.postneo.com/2009/02/06/sphinx-search-with-postgresql –
관련 문제
- 1. 많은 url 주소 검색하기
- 2. PHP와 MySQL "데이터베이스 연결"
- 3. 는 PHP와 MySQL
- 4. PHP와 MySQL 캐싱
- 5. AJAX PHP와 mysql
- 6. OOP PHP와 MySQL
- 7. PHP와 mysql proc
- 8. PHP와 mysql 질문
- 9. PHP와 MySQL 프로젝트 지불
- 10. PHP와 MYSQL - 변수 쿼리하기
- 11. PHP와 MySQL 연결
- 12. PHP와 MySQL 쿼리가 비교합니까?
- 13. PHP와 MySQL (mysql_query) 문제
- 14. PHP와 MySQL 문제가 있습니까?
- 15. PHP와 MySQL을 사용하여 많은 중첩 목록 생성?
- 16. Linq to Entities 많은 컬럼에서 성능 문제가 발생했습니다.
- 17. jQuery와 PHP와 MYSQL IE 문제
- 18. PHP와 MySQL 데이터베이스를 나열하고 필요한
- 19. PHP와 MySQL hitcounter 문제가 있습니까?
- 20. PHP와 MySQL - 이중 항목 게시
- 21. mysql 연결이 PHP와 작동하지 않음
- 22. PHP와 MySQL에서 많은 테이블 엔트리를 동시에 삽입
- 23. mysql 데이터베이스의 사용자 입력을 PHP와 비교
- 24. mysql으로 숫자 만 검색하기
- 25. 많은 mysql 절전 프로세스
- 26. 많은 항목이있는 MySQL 필드
- 27. csv 파일 컬럼에서 사전 만들기
- 28. 여러 컬럼에서 그룹화 정보 표시
- 29. MPI - 매트릭스 컬럼에서 최대 카운팅
- 30. 파이썬으로 검색하기
문제는이 시점에서 약 65,000 개의 행이 있으며 매주 약 500 개가 추가된다는 것입니다. –
500이 무작위가 아닌 일괄 처리 인 경우 일괄 처리 후에 파생 테이블을 쉽게 다시 생성 할 수 있습니다. 인서트가 무작위로 발생한다고 가정 할 때, 일주일에 평균 500 시간이 여전히 1 시간에 불과합니다. 어떤 변경이 있었고 특별한 고통을 느끼지 않으면 파생 테이블을 재생성하는 매분 크론 작업을 실행할 수 있습니다. – chaos
MySQL FULLTEXT 인덱스가있는 비정규 화 된 테이블의 경우 +1. 비록 첫 번째 옵션으로 스핑크스를 볼 수 있습니다. –