별도로 질문하십시오.
모든 사용자의 노래에 대한 색인을 독립적으로 작성해야합니까?
아니요; 이러한 종류의 상황에 대한 일반적인 기술은 각각의 like
을 노래에 대한 정보와 추가로 사용자의 식별자로 따로 색인화하는 것입니다. 그런 다음 검색 할 때 실제로 로그인 한 사용자 식별자로 사용자의 자연 텍스트 검색 결과를 필터링하고 싶습니다.
Xapian에서 사용자를 나타내는 용어를 추가하면됩니다 (적절한 접두어, 따라서 ID가 175 인 사용자의 경우 XU175
일 수 있습니다.) 그리고 OP_FILTER
을 사용하여 로그인 한 사용자 만 검색하도록 제한 할 수 있습니다.
[실시간 인덱싱을 지원하려면] 짧은 시간마다 인덱스를 점진적으로 구축해야합니까?
이것은 전적으로 사용중인 검색 시스템에 따라 다릅니다. Xapian을 사용하면 생성 한 데이터베이스를 주기적으로 하나의 기본 데이터베이스로 압축 할 수 있습니다. 또는 Xapian이 싱글 라이터이기 때문에 큐에 새로운 좋아하는 사람을 배치하고 그 사람을 끄고 색인을 생성하는 단일 프로세스가있는 것처럼 직렬화하는 방법을 찾고 싶을 수도 있습니다. 데이터베이스에 저장합니다. XPSian 개발자 중 한 사람이 작성한 과 같은 역할을하는 Restpose을 사용하면 Lucene에 대한 해결책이 될 수 있습니다.
하나의 데이터베이스로 색인을 생성 한 다음 다른 데이터베이스로 복제하고 복제 된 버전을 검색하여 장래에 수평 확장 옵션을 제공 할 수도 있습니다. Xapian 설명서에는 discussion of replication이 있습니다.