2010-05-26 3 views
2

저는 검색 지향적 인 프로젝트를 진행하고 있습니다. 기본적으로 사용자는 사이트에 콘텐츠를 추가 할 것이며이 콘텐츠는 검색 결과에서 즉시 사용할 수 있어야합니다. 이 프로젝트는 아직 개발 중에 있습니다.Django에서 MongoDB를 사용하여 실시간 검색 하시겠습니까?

지금까지 저는 Haystack을 Xapian과 함께 사용해 왔습니다. 내가 걱정하는 한 가지는 많은 콘텐츠를 사용할 수있게되면 웹 사이트의 성능입니다. 실시간 검색을 에뮬레이트하려면 인덱싱을 자주 수행해야합니다.

최근에 MongoDB에서 읽었습니다. 내 질문에 대한 만족스러운 답변을 찾지 못했지만 MongoDB가 내가 만날 것으로 예상되는 실시간 검색 색인 문제에 도움이 될 것 같은 느낌이 들었습니다. 이 올바른지? 즉, MongoDB에서 사용할 수있는 검색 기능이 실시간 검색 기능에 더 적합합니까?

사이트에서 사용할 수있는 콘텐츠는 구조화되지 않은 큰 텍스트 (HTML 포함) 및 관련 데이터 (가격, 태그, 날짜/시간 정보)입니다. 사전에

감사합니다,

Laundro

답변

0

나는 MongoDB에 대해 잘 모르겠지만, 나는 큰 성공 Sphinx Search로 사용하고 있습니다 - 전체 텍스트 인덱싱 & 검색을위한 간단하고 강력하고 매우 빠른 도구입니다. 또한 Python 래퍼를 즉시 사용할 수 있습니다.

Haystack에서 바인딩을 제공하면 픽업하기가 쉽지만 불행히도 스핑크스 바인딩은 여전히 ​​위시리스트에 있습니다. 그럼에도 불구하고 Spinx를 빠르게 설정하는 것은 매우 빠릅니다 (몇 시간 만에 기존 Django 기반 CRM의 경우), 좀 더 일반적인 솔루션으로 전환하기 전에 시도해 볼 수 있습니다.

1

MongoDB는 실제로 "전문 텍스트 검색 엔진"이 아닙니다. full text search 문서를 기반으로 문자열 데이터 나 다른 열을 복제하는 태그 배열 만 만들 수 있습니다. 많은 요소 (수백 또는 수천)를 사용하면 삽입 비용이 매우 높아질 수 있습니다.

Tomasz와의 동의, 스핑크스 필요한 것을 검색하는 데 사용할 수 있습니다. Real time indexes 또는 지연 시간이 수 초인 경우 Delta indexes으로 설정하십시오.

관련 문제