programing

SpinxSE를 사용하는 MariaDB 10.0

closeapi 2023. 8. 24. 22:04
반응형

SpinxSE를 사용하는 MariaDB 10.0

Spinks를 MariaDB 10.0과 통합하는 것에 대해 질문이 있습니다.db는 SpinxSE 스토리지 엔진과 함께 제공되지만 설정 방법에 대한 자세한 정보를 찾는 데 어려움을 겪고 있습니다.다음 시나리오를 고려합니다.

저는 데이터베이스를 사용하여 "책", "목록", "학교" 표를 가진 책 판매 앱을 가지고 있습니다."목록"에는 단일 책과 단일 학교와의 관계가 포함됩니다."책"에는 여러 개의 열(가장 중요한 것은 "제목"과 "저자")이 포함되어 있습니다.스핑크스를 사용하여 "책" 테이블에 대한 전체 텍스트 검색을 수행하고 싶은데, 일반적인 쿼리는 (의사 SQL에서) "하버드 대학교에 현재 목록이 존재하는 '해리 P' 문자열이 포함된 제목의 모든 책을 찾습니다."와 같을 수 있습니다.

MariaDB의 기사에 따르면, "특수 ENGIN=SPHINX '검색 테이블'을 만든 다음 전체 텍스트 쿼리를 사용하여 이 테이블에서 선택해야 합니다.- 그러면 이것은 스핑크스가 내 기존 MariaDB 테이블에 전혀 액세스/인덱스할 수 없다는 것을 의미합니까?"Book" 테이블을 SpinxSE 테이블로 다시 만들어야 합니까?이 경우 이 테이블과 다른 비 스핑크스 테이블(목록, 학교 등) 간의 관계를 어떻게 지정합니까?위의 글은 매우 간단한 JOIN의 예를 보여주고 있지만, 저는 여전히 혼란스럽습니다.모든 "책"이 스핑크스 테이블에 저장된 경우, 마리아DB는 다양한 유형의 쿼리(전체 텍스트 검색이 필요하지 않은 경우)에 대해 이 테이블에 액세스할 수 있습니까?

관련 질문으로, 스핑크스가 책의 제목과 저자를 모두 색인화할 수 있도록 하는 좋은 방법은 무엇입니까?앱은 항상 쿼리 중인 필드를 지정합니다.

몇 시간 동안 검색하고 읽으며 이 주제에 대해 거의 알지 못했기 때문에 어떤 도움이라도 주시면 대단히 감사하겠습니다.

스핑크스E 엔진은 실제 엔진이 아닙니다.기본 스핑크스 데몬에 '프록시'를 제공하는 것이 전부입니다.spinx 엔진에 대한 쿼리를 실행한 다음 '결과'를 FAKE 테이블로 표시하여 mysql이 원래 테이블과 다시 결합할 수 있도록 합니다.

기본적으로 스핑크스 결과와 적절한 데이터를 하나의 쿼리로 가져올 수 있는 편리한 방법입니다(mysql은 'JOIN'을 수행하는 힘든 작업을 수행함).

그래서 스핑크스SE에 대해 "걱정"하기 전에.쿼리를 실행할 수 있는 일반 스핑크스 인덱스를 찾아야 합니다.즉, 해당 쿼리를 실행할 수 있는 인덱스를 만듭니다.일반적으로 스핑크스 쿼리는 ID 목록만 제공합니다.

따라서 (스핑크스SE 또는 MariaDB 없이) 독립적으로 스핑크스를 설정하고 인덱스를 만들고 이에 대한 쿼리를 실행합니다.그걸 먼저 작동시키세요.

인덱스가 작동하고 개념을 이해한 에만 다시 돌아와서 SpinxSE로 인덱스를 설정하는 방법을 알아봅니다.

https://www.google.com/search?q=sphinx+search+getting+started 에서 스핑크스를 일하는 것에 대한 많은 기사들이 있습니다.

언급URL : https://stackoverflow.com/questions/28954129/mariadb-10-0-with-sphinxse

반응형