2012-01-24 2 views
0

Marshal.dump/Marshal.load을 통해 안전하게 전달할 수있는 형식으로 메모리에 저장된 전체 텍스트 색인을 작성하는 방법을 찾고 있으므로 색인을 가져갈 수 있습니다. 그것을 디스크에 저장하기 전에 암호화하십시오.Serializeable 루비 용 전체 텍스트 색인 도구

이 기능이 필요한 이유 : 사용자의 콘텐츠를 자체 키를 사용하여 암호화하고 전체 텍스트 검색을 위해 색인을 생성해야하는 시스템을 설계하고 있습니다. 시스템의 각 사용자가 콘텐츠의 전체 색인을 비 정렬 화하고 메모리에로드해야한다면 상당한 오버 헤드와 메모리 사용량이 있다는 것을 알고 있습니다. 이 프로젝트의 경우 보안이 효율성보다 훨씬 중요합니다.

전체 텍스트 색인은 암호화되지 않은 상태로 남겨두기 위해 사용자의 콘텐츠에 대한 세부 정보를 너무 많이 유지하며 각 사용자의 색인을 해당 사용자의 고유 키를 사용하여 암호화해야하므로 암호화 된 볼륨에 색인을 저장하는 것만으로는 부족합니다. 원하는 보안 수준을 유지하십시오.

사용자 콘텐츠는 암호화되어 기존의 RDBMS에 저장됩니다. 내 생각에 직렬화 된 인덱스를로드/언로드하는 것은 모든 DB 행을 해독하고 모든 검색에 대해 전체 검색을 수행하는 것보다 많은 양의 콘텐츠가있는 사용자에게는 오버 헤드가 적을 것입니다.

ferret을 사용한 내 평가판을 사용하면 메모리 색인을 성공적으로 만들 수 있습니다. 그러나 Mutex 사용으로 인해 인덱스가 Marshal.dump에 실패했습니다. 나는 또한 xapiansolr을 평가 중이지만 거기에도 장애물이있는 것으로 보입니다.

내가 더 멀리 가기 전에 나는이 접근법이 제정신이 아닌지, 그리고 그렇지 않으면 내가 고려하고 싶은 대안을 알고 싶습니다. 또한 누군가가 이런 방식으로 전체 텍스트 색인을 serialize하는 데 성공했는지, 사용한 도구 및 제공 할 수있는 포인터에 대해 알고 싶습니다.

답변

1

표준 전체 텍스트 검색 엔진을 사용하고 TrueCrypt와 같은 별도의 암호화 된 디스크 이미지에 각 클라이언트의 색인을 유지하지 않는 이유는 무엇입니까? 각 클라이언트의 디스크 이미지는 고유 한 키를 가질 수 있으며 RAM을 적게 사용하며 구현에 더 적은 시간이 소요됩니다.

+0

이것은 흥미로운 접근 방법입니다. TrueCrypt를 살펴보고 더 나은 대답이 없다면 나는 당신의 것을 받아 들일 것이며 그 길로 갈 것입니다. 감사. –

+0

앱이 우분투에서 호스팅되기 때문에 대신'encfs'를 사용하기로 결정했고'encfs'는 TrueCrypt보다 설치가 더 쉽습니다. 그래도 같은 생각이야. 귀하의 대답은 분명히 올바른 길로 나를 설정합니다. –

관련 문제