2010-05-12 5 views
0

저는 약간의 시간 동안 완벽하게 작동하는 프로젝트에서 장고 스핑크스를 설정했습니다. 나중에 항상 빈 결과 집합을 반환합니다. 놀랍게도 django 응용 프로그램을 다시 시작하면 문제가 해결됩니다. 그리고 검색은 짧은 시간 동안 (또는 매우 제한된 수의 쿼리) 다시 만 작동합니다. views.py에서장고 스핑크스는 앱 재시동 후에 만 ​​작동합니다

source src_questions 
{ 
    # data source 
    type  = mysql 
    sql_host = xxxxxx 
    sql_user = xxxxxx #replace with your db username 
    sql_pass = xxxxxx #replace with your db password 
    sql_db  = xxxxxx #replace with your db name 
    # these two are optional 
    sql_port = xxxxxx 
    #sql_sock = /var/lib/mysql/mysql.sock 

    # pre-query, executed before the main fetch query 
    sql_query_pre = SET NAMES utf8 

    # main document fetch query 
    sql_query  =  SELECT q.id AS id, q.title AS title, q.tagnames AS tags, q.html AS text, q.level AS level \ 
          FROM question AS q \ 
          WHERE q.deleted=0 \ 

    # optional - used by command-line search utility to display document information 
    sql_query_info = SELECT title, id, level FROM question WHERE id=$id 

    sql_attr_uint = level 
} 

index questions { 
    # which document source to index 
    source  = src_questions 

    # this is path and index file name without extension 
    # you may need to change this path or create this folder 
    path   = /home/rafal/index/index_questions 
    # docinfo (ie. per-document attribute values) storage strategy 
    docinfo  = extern 

    # morphology 
    morphology = stem_en 

    # stopwords file 
    #stopwords = /var/data/sphinx/stopwords.txt 

    # minimum word length 
    min_word_len = 3 

    # uncomment next 2 lines to allow wildcard (*) searches 
    min_infix_len = 1 
    enable_star = 1 

    # charset encoding type 
    charset_type = utf-8 
} 

# indexer settings 
indexer 
{ 
    # memory limit (default is 32M) 
    mem_limit = 64M 
} 

# searchd settings 
searchd 
{ 
    # IP address on which search daemon will bind and accept 
    # optional, default is to listen on all addresses, 
    # ie. address = 0.0.0.0 
    address  = 127.0.0.1 

    # port on which search daemon will listen 
    port  = 3312 

    # searchd run info is logged here - create or change the folder 
    log  = ../log/sphinx.log 

    # all the search queries are logged here 
    query_log = ../log/query.log 

    # client read timeout, seconds 
    read_timeout = 5 

    # maximum amount of children to fork 
    max_children = 30 

    # a file which will contain searchd process ID 
    pid_file = searchd.pid 

    # maximum amount of matches this daemon would ever retrieve 
    # from each index and serve to client 
    max_matches = 1000 
} 

과를 heres 내 검색 부분 : Heres는 내 sphinx.conf

content = Question.search.query(keywords) 
    if level: 
     content = content.filter(level=level)#level is array of integers 

어떤 로그에 오류가 없습니다, 그냥 밤은 어떤 결과를 반환. 나는 'indexer --rotate --all'을 cron에서 매 5 분마다 실행하도록 설정했으며 searchd는 항상 실행 중입니다. 모든 도움을 주시면 감사하겠습니다.

답변

0

스핑크스의 버전은 무엇입니까? 장고 스핑크스? 스핑크스 api? 파이썬?

어쨌든 을 cron &에서 제거해보십시오. 문제가 지속될 경우 참조하십시오. 이게 어떻게되는지 알려주세요.

관련 문제