2013-04-01 35 views
2

我已经对允许特殊字符(#,@,!,&, ),%)在狮身人面像搜索关键字..如何在Sphinx中允许特殊字符(#,@,!,&,(,),%)作为搜索关键字

请建议我..

下面是配置文件,

/* *启动/

source dbserver 
{ 
    type     = mysql 
    sql_host    = localhost 
    sql_user    = root 
    sql_pass    = 
    sql_db     = mydb 
    #sql_sock    = /var/run/mysqld/mysqld.sock 
    sql_port    = 3306 
} 


searchd 
{ 
    listen     = localhost:3312 
    # port     = 9313 
    log      =      /* some searchd.log path */ 
    query_log    =     /* some query.log path */ 
    pid_file    =     /* some searchd.pid path */ 
    max_matches    = 10000 
    seamless_rotate   = 0 
} 


source adsearch : mydbserver 
{ 
    sql_query_post   = REPLACE INTO sph_tracker SELECT 1,'ad',CURRENT_TIMESTAMP; 

    sql_ranged_throttle  = 1 
    sql_attr_uint   = networkid 
    sql_attr_uint   = folderid 
    sql_attr_uint   = createdby 
    sql_attr_uint   = status 
    sql_attr_timestamp  = createdon 
} 

index index_adsearch 
{ 
    source     = adsearch 
    path     =   /* some path */ 
    morphology    = stem_en 
    min_word_len   = 0 
    #min_prefix_len   = 5 
    min_infix_len   = 2 
    enable_star    = 1 
    preopen     = 1 
} 

source delta_adsearch : adsearch 
{ 
    sql_query = DELETE FROM ad where status='Deleted' AND deleteflag='Y'        
} 

index delta_index_adsearch : index_adsearch 
{ 
    source     = delta_adsearch 
    path     =    /* some path */ 
} 

source tmplsearch : mydbserver 
{ 
    sql_query_post   = REPLACE INTO sph_tracker SELECT 2,'template',CURRENT_TIMESTAMP; 


    sql_ranged_throttle  = 1 
    sql_attr_uint   = networkid 
    sql_attr_uint   = industryid 
    sql_attr_uint   = status 
    sql_attr_timestamp  = createdon 
    sql_attr_timestamp  = startdate 
    sql_attr_timestamp  = enddate 
    sql_attr_uint   = active 
    sql_attr_uint = primarysize 
} 

index index_tmplsearch 
{ 
    source     = tmplsearch 
    path     =    /* some path */ 
    morphology    = stem_en 
    min_word_len   = 0 
    #min_prefix_len   = 5 
    min_infix_len   = 2 
    enable_star    = 1 
    preopen     = 1 
} 

source delta_tmplsearch : tmplsearch 
{ 
    sql_query = DELETE FROM adtemplate where status='Deleted' AND deleteflag='Y'        
} 

index delta_index_tmplsearch : index_tmplsearch 
{ 
    source     = delta_tmplsearch 
    path     =    /* some path */ 
} 


source media_assets_search : mydbserver 
{ 
    #sql_query_post   = REPLACE INTO sph_tracker SELECT 3,'media',CURRENT_TIMESTAMP; 

    sql_ranged_throttle  = 1 
    sql_attr_uint   = networkid 
    sql_attr_uint   = mediatype 
    sql_attr_uint   = mediacat 
    sql_attr_uint   = uploadedby 
    sql_attr_uint   = active  
    sql_attr_uint   = industryid   
    sql_attr_timestamp  = uploaddate 
    sql_attr_uint   = diskstore 
} 

index index_media_assets_search 
{ 
    source     = media_assets_search 
    path     =    /* some path */ 
    morphology    = stem_en 
    min_word_len   = 0 
    #min_prefix_len   = 5 
    min_infix_len   = 2 
    enable_star    = 1 
    preopen     = 1 
} 

source delta_media_assets_search : media_assets_search 
{ 

} 

index delta_index_media_assets_search : index_media_assets_search 
{ 
    source     = delta_media_assets_search 
    path     =     /* some path */ 
} 

/* *结束/

请看看这一点,并建议我..

感谢,

纳古..

回答

0

你需要将它们添加到charset_table里配置。

您可能还想确保转义查询以避免被误解为搜索语法。

虽然确实也blend_chars读了

+0

感谢巴里.., 但在我的配置文件,也没有定义charset_table里。那我该怎么办。我试图粘贴该配置文件的代码与此评论..但在这里它没有考虑,由4941字符显示太长..在这里我也没有得到一个上传文件的选项。你能给我建议吗? – Nagalingesha

+0

如果你没有,你可以添加一个。 http://sphinxsearch.com/docs/current.html#conf-charset-table只需编辑你的问题,SO就像维基,如果你真的需要分享它,就可以添加你的配置。 – barryhunter

+0

你好巴里.., 我编辑了我的问题与配置文件代码。请看看并建议我。 谢谢, Nagu。 – Nagalingesha