Fess로 문서 검색 환경을 구축한 이야기
했던 일
전체 구성
싹둑한 것입니다만 이런 느낌입니다.
GitBook 구축
GitBook 설치
어쨌든 마크 다운 형식으로 문서를 만들고 빌드하여
html이나 PDF를 작성해, 공개하거나 프로젝트내에 전개할 수 있는 툴입니다.
이번에는 AWS의 EC2에 환경을 만들었지만 GitBook.com에서도 할 수 있으므로 용도에 따라 바꾸면 좋겠다고 생각합니다.
설치에 관해서는, 검색해 나온 선생님의 분들을 참고로 해 갔으므로, 이쪽에서는 할애합니다.
프로젝트 멤버에게 공개
공개에 이용한 Web 서버는 apache의 2.2계를 이용했습니다.
GitBook은 프로젝트의 각 팀에 대해 작성되며 매번 증가 또는 감소합니다.
그때마다 apache의 conf를 다시 쓰는 것은 번거롭기 때문에 VertualDocumentRoot를 사용했습니다.
AWS Route53에서 사내 프라이빗 도메인을 할당하고 각 하위 도메인에 대해 GitBook 및 Jenkins 작업을 생성합니다.
workspace 이하를 문서 루트로 하는 것으로 정의의 재기입의 필요성을 없애고 있습니다.
<VirtualHost *:80>
ServerName [プライベートドメイン]
ServerAlias *.[プライベートドメイン]
VirtualDocumentRoot /var/lib/jenkins/workspace/%1/_book
<Directory "/var/lib/jenkins/workspace/%1/_book">
Options Indexes FollowSymLinks
AllowOverride All
</Directory>
</VirtualHost>
Jenkins와의 협력
GitBook과 Jenkins
Jenkins의 Gitlab Plugin
를 사용하여 Gitlab의 Commit과 빌드를 연동하도록했습니다.
기존 문서와 Jenkins
Jenkins 내에 최신 문서를 보관하는 것이 목적입니다.
이유는 후술하는 Fess에서 이용하기 때문입니다.
Fess 구축
OSS의 전체 텍스트 검색 엔진입니다.
공식적으로도 쓰고 있습니다만. ElasticSearch를 사용하고 있습니다.
WebAPI도 지원하기 때문에 웹 기반 Google 구글 검색도 가능하다면
APICall이 시스템에서 검색 파트 역할을 할 수도 있습니다.
현재는 패키지 인스톨에 대응하고 있는 것 같기 때문에, 도입은 비교적 용이하다고 생각합니다.
나의 때(1년 반 정도 전)는 없었던 생각이 든다…
GitBook을 크롤링
GitBook의 공개 URL에 대해 크롤링하도록 설정합니다.
프로젝트 내에서 사용하는 이름 등은 [] 쓰기로 대체됩니다.
기존 문서의 파일 크롤링
Fess가 Git에서 관리하는 문서의 색인을 만듭니다.
검색 대상은 Jenkins에서 리포지토리에서 풀링한 문서가 들어 있는 폴더입니다.
크롤링할 경로 항목에서 검색에서 찾을 수 있는 문서를 어느 정도 제어합니다.
모든 파일 대상이라면 불필요한 쓰레기 파일까지 걸려 버렸기 때문입니다.
구축하고 생각한 것
GitBook 설치
어쨌든 마크 다운 형식으로 문서를 만들고 빌드하여
html이나 PDF를 작성해, 공개하거나 프로젝트내에 전개할 수 있는 툴입니다.
이번에는 AWS의 EC2에 환경을 만들었지만 GitBook.com에서도 할 수 있으므로 용도에 따라 바꾸면 좋겠다고 생각합니다.
설치에 관해서는, 검색해 나온 선생님의 분들을 참고로 해 갔으므로, 이쪽에서는 할애합니다.
프로젝트 멤버에게 공개
공개에 이용한 Web 서버는 apache의 2.2계를 이용했습니다.
GitBook은 프로젝트의 각 팀에 대해 작성되며 매번 증가 또는 감소합니다.
그때마다 apache의 conf를 다시 쓰는 것은 번거롭기 때문에 VertualDocumentRoot를 사용했습니다.
AWS Route53에서 사내 프라이빗 도메인을 할당하고 각 하위 도메인에 대해 GitBook 및 Jenkins 작업을 생성합니다.
workspace 이하를 문서 루트로 하는 것으로 정의의 재기입의 필요성을 없애고 있습니다.
<VirtualHost *:80>
ServerName [プライベートドメイン]
ServerAlias *.[プライベートドメイン]
VirtualDocumentRoot /var/lib/jenkins/workspace/%1/_book
<Directory "/var/lib/jenkins/workspace/%1/_book">
Options Indexes FollowSymLinks
AllowOverride All
</Directory>
</VirtualHost>
Jenkins와의 협력
GitBook과 Jenkins
Jenkins의 Gitlab Plugin
를 사용하여 Gitlab의 Commit과 빌드를 연동하도록했습니다.
기존 문서와 Jenkins
Jenkins 내에 최신 문서를 보관하는 것이 목적입니다.
이유는 후술하는 Fess에서 이용하기 때문입니다.
Fess 구축
OSS의 전체 텍스트 검색 엔진입니다.
공식적으로도 쓰고 있습니다만. ElasticSearch를 사용하고 있습니다.
WebAPI도 지원하기 때문에 웹 기반 Google 구글 검색도 가능하다면
APICall이 시스템에서 검색 파트 역할을 할 수도 있습니다.
현재는 패키지 인스톨에 대응하고 있는 것 같기 때문에, 도입은 비교적 용이하다고 생각합니다.
나의 때(1년 반 정도 전)는 없었던 생각이 든다…
GitBook을 크롤링
GitBook의 공개 URL에 대해 크롤링하도록 설정합니다.
프로젝트 내에서 사용하는 이름 등은 [] 쓰기로 대체됩니다.
기존 문서의 파일 크롤링
Fess가 Git에서 관리하는 문서의 색인을 만듭니다.
검색 대상은 Jenkins에서 리포지토리에서 풀링한 문서가 들어 있는 폴더입니다.
크롤링할 경로 항목에서 검색에서 찾을 수 있는 문서를 어느 정도 제어합니다.
모든 파일 대상이라면 불필요한 쓰레기 파일까지 걸려 버렸기 때문입니다.
구축하고 생각한 것
OSS의 전체 텍스트 검색 엔진입니다.
공식적으로도 쓰고 있습니다만. ElasticSearch를 사용하고 있습니다.
WebAPI도 지원하기 때문에 웹 기반 Google 구글 검색도 가능하다면
APICall이 시스템에서 검색 파트 역할을 할 수도 있습니다.
현재는 패키지 인스톨에 대응하고 있는 것 같기 때문에, 도입은 비교적 용이하다고 생각합니다.
나의 때(1년 반 정도 전)는 없었던 생각이 든다…
GitBook을 크롤링
GitBook의 공개 URL에 대해 크롤링하도록 설정합니다.
프로젝트 내에서 사용하는 이름 등은 [] 쓰기로 대체됩니다.
기존 문서의 파일 크롤링
Fess가 Git에서 관리하는 문서의 색인을 만듭니다.
검색 대상은 Jenkins에서 리포지토리에서 풀링한 문서가 들어 있는 폴더입니다.
크롤링할 경로 항목에서 검색에서 찾을 수 있는 문서를 어느 정도 제어합니다.
모든 파일 대상이라면 불필요한 쓰레기 파일까지 걸려 버렸기 때문입니다.
구축하고 생각한 것
Reference
이 문제에 관하여(Fess로 문서 검색 환경을 구축한 이야기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/m_kunisada/items/096e3a2e6e5cfb4d37e9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)