우분투에서 실행되는 Ruby on Rails 애플리케이션을 얻으려고합니다. Xapian을 사용하여 문서를 검색합니다. 이미 xapian-full
Gem 파일을 Gemfile의 지시에 따라 1.1.3.4
버전으로 설치했고 Xapian 데이터베이스가있는 디렉토리 files/default
을 만들었습니다.Ruby on Rails에서 Xapian 실행하기 : 데이터베이스 유형을 찾을 수 없습니다.
database = Xapian::Database.new('files/default');
즉시 코드는 다음 라인으로 실행되는 오류가
:
IOError in SearchController#index
DatabaseOpeningError: Couldn't detect type of database
나는 데이터베이스 또는 뭔가를 초기화해야합니까? 나는 Xapian Docs를 보았고 인터넷에서 오류 메시지를 찾았지만 실제로는 도움이되지 않았다.
주셔서 감사합니다. 슬프게도 이것은 오류 메시지를 다른 것으로 변경합니다 :'DatabaseOpeningError : 'files/default'를 stat 할 수 없습니다''stat'가 의미하는 바가 없습니다. 그 이유가 무엇인지 또 다른 생각이 있습니까? – YMMD
루비 내에서 스택 추적은 무엇입니까? C++ 라이브러리에서'Xapian :: Database' 객체를 생성하는 방법은 다양합니다. 사용하는 코드 경로 ('Xapian :: Database.new')에'xapian-full'에서 사용 된 접근 방식은 그것이하려고하는 것. 짐작할 수 있겠지만, 기존 데이터베이스를 열려고 시도하고 있지만 원래는 시도했던 것처럼 빈 디렉토리가없는 방법도 없습니다. 따라서 먼저 사용해야하는 새 데이터베이스를 만드는 또 다른 방법이있을 수 있습니다. –
스택 트레이스는 제 Xapian :: Database.new 함수 호출에서 시작하여 그 사이에 아무 것도 쓰지 않고 따옴표 붙은 에러 메시지로 끝납니다. 그것은 Xapian에서 직접 온 것입니다. 어쨌든, 지금 바로 고쳤습니다. 오류는 색인이 제대로 생성되지 않았다는 것입니다. 나는 이것을 omindex를 사용하여 수동으로했는데 이제 모든 것이 예상대로 작동합니다. 당신의 대답이 원래의 질문에 답하기 때문에 나는 그것을 받아 들일 것입니다. 두 분 모두 저를 도와 주셔서 감사합니다! – YMMD