묻고답하기

검색엔진을 구현하려고 합니다..

 

테이블 설계를

 

article_keyword  // 키워드 테이블 (ex: 컴퓨터,노트북,의류 등등)

article_hash  // Keyword와 document를 연결해주는 hash table

article_documents  // 실제 문서

 

article_keyword table structure

------------------------------------------------------------------

key_id       value

0              컴퓨터

1              노트북

2              의류

3              쇼핑몰

-------------------------------------------------------------------

 

article_hash table structure

-------------------------------------------------------------------

doc_id    key_id

 1                0

 1                1

 1                2

 1                3

-------------------------------------------------------------------

 

article_documents table structure

-------------------------------------------------------------------

dic_id     contents

 1            컴퓨터 노트북 의류 쇼피몰...

-------------------------------------------------------------------

 

위처럼 테이블 설계가 되어있습니다.

XML QUERY를 이용해서 JOIN을 하려니 이해가 안되는 부분이 있습니다.

XE에서는 XML table노드에서 table type을 left join으로 해서 outer join종류는 가능하긴한데,

명시적으로 inner join이 가능하게 되어있지는 않도록 설계 되어있더군요.

 

다만 문제는 condition값을 추가할때 var값이 없을 경우엔 해당 condition이 query문에는 추가가 되지 않는것으로 알고 있습니다만,

 

inner join시 검색하려는 키워드값은 가변적이므로 이에 따른 join되는 테이블의 갯수를 유동적으로 처리가 가능한지입니다.

 

예를 들어 xml query문을 keyword_01 keyword_02로 분류하여 and조건으로 묶어 작성하였다면,

고정적인 쿼리문에서는 테이블 2개가 조인이 되어있는 상태인데

키워드가 1개만 입력이 되었을 경우엔 condition이 지정되지 않아 keyword_02의 테이블의 모든 데이터를 가져오게되는 일이 생겨버립니다.

 

xml쿼리문 안에 if문을 넣을수도 없고 이럴땐 어떤식으로 처리를 해야 키워드 갯수에 따라 유동적으로 추가하거나 수정할 수 있을련지요..

 

추가적으로,

 

문서가 입력될때마다 키워드를 분류하여 article_keyword테이블에 단어별로 구분하여 삽입하게 되어있습니다.

하지만, 이때 반복문을 통해서 쿼리를 날려주다보니 서버 과부하가 걸리는 일이 생기더라구요..

 

그래서 insert문에서 삽입되는 다중데이터를 한번의 query안에서 처리가 가능하던데,

XE에서는 XML QUERY를 어떤식으로 작성해야 가능한가요?

기존 classes에 있는 DB모듈을 변경해야 하는건지도 궁금합니다..

 

두서없이 작성한거라 앞뒷말이 잘 않맞지만 대략적으로 요약하자면,

 

1. XML QUERY작성시에 var로 연결되는 조건절에서 검색하려는 키워드가 없을경우에 join테이블을 유동적으로 추가하거나 삭제할 수 있는 방법.

 

2. XML QUERY에서 다중 데이터를 insert할때 한번의 QUERY문으로 다중 데이터를 서버 과부하없이 넣는 방법.

(기존 검색엔진 구현시에는 수십~수백개 되는 키워드를 어떤식으로 처리를 하는지요? 지금 제가 구현해놓은것처럼 반복문안에 쿼리를 계속 날려주는 방식은 아닐것으로 예상됩니다..)

 

현직 개발자 분들께서 좋은 방법이 있다면 말씀해주세요^^

 

 

 

 

 

글쓴이 제목 최종 글
XE 공지 글 쓰기,삭제 운영방식 변경 공지 [16] 2019.03.05 by 남기남
mjei 인증메일도 오지않고 관리자 페이지가... [1] 2010.01.26 by 백성찬
오델라가루 xe 폴더 이전시 사이트 접속시 에러문제 [1] 2010.01.26 by 백성찬
jj_king 메인 화면에 위젯사용 최근 게시물 추출시 글자만 추출방법 [1] file 2010.01.26 by 백성찬
이유진349 게시판 스킨을 이런식으로 만들고 싶은데 .. 어찌해야 할까요..ㅠ.ㅠ [1] file 2010.01.26 by 백성찬
kates 홈페이지 꾸밀때 왼쪽/오른쪽 꾸미는 방법 좀요..  
김상권185 특정그룹회원출력 위젯에서 확장변수를 출력하고 싶습니다  
총총총끼싸 files > config 서버이전후 db.php 문제 ㅠㅠ [1] 2010.01.26 by Gekkou
총총총끼싸 files 폴더삭제가 안됩니다. [1] 2010.01.26 by 라르게덴
랄랄이 하이퍼 링크 걸기  
바비쿨 회원가입 페이지는 어디에 있나요? 초보질문 [2] 2010.01.26 by 라르게덴
이성희711 라이센스 관련해서 질문드립니다. [1] 2010.01.26 by 라르게덴
뽀칠이 목록에 확장게시판만 표시할때.? [1] 2010.01.26 by 라르게덴
부푸러 ID 값 넘기는 방법? [1] 2010.01.26 by 라르게덴
solavity XML QUERY에서 JOIN시 질문드립니다. [1] 2010.01.26 by 라르게덴
소피아7 게시판에 글을 작성하면 에러가 나요 ;; [1] 2010.01.26 by 이바지
유아원 쉬운설치가 안된다고요 [3] 2010.01.26 by misol
유아원 쉬운설치가 안된다니까요 [1] 2010.01.26
박민석_PPC 지식인 게시판 답변알림 기능 게시판에도 추가하고 싶습니다!! file  
파란불꽃 에디터에서 wma나 wmv파일 첨부시 한글이름 사용문제  
젠이 카페24 계정 쓰는데 테이블 일괄삭제 안 될까요? [2] 2010.01.26 by shuden
총총총끼싸 이 위젯은 어디서 다운로드 할수있는지? file  
조로조 아이프레임 게시판 삽입  
RaisonDetre 외부페이지에서 xe 사용자 로그인정보 불러오고 싶습니다. [1] 2010.01.26 by RaisonDetre
gamsa365tv방송 사진이 짤립니다 해결책좀 부탁드려요 [3] 2010.01.26 by gamsa365tv방송
미휘 게시글 회원 이사하기 [1] 2010.11.03 by 난다날아
초보 제로보드 xe 기본스킨 사용시 게시판 상단에 로그인/회원가입 없나요? [2] 2010.01.26 by 크크
poko 페이지 만들기에서 빈페이지 만들어 지지 않습니다. [1] file 2010.11.03 by 낌호
지엑스82 i''ll be back!! [5] 2010.01.26 by 지엑스82
비밀얌 최근글 탭형식 위젯 할려고 하면 "요청하신 기능을 실행할 수 있는 권한이 없습니다" [1] 2010.01.26 by 백성찬
세종대왕1 제로보드4버전으로 홈피가 만들어진 서버에 xe를 새로 설치해서 새로 제작을 하려합니다 [1] 2010.01.26 by 백성찬