如何允许特殊字符(#、@、!、&;、(、)、%作为Sphinx中的搜索关键字

如何允许特殊字符(#、@、!、&;、(、)、%作为Sphinx中的搜索关键字,sphinx,Sphinx,我对允许特殊字符(#、@、!、&、(、)、%作为Sphinx中的搜索关键字的实现感到震惊 请建议我 下面是配置文件 /*开始*/ source dbserver { type = mysql sql_host = localhost sql_user = root sql_pass = sql_db

我对允许特殊字符(#、@、!、&、(、)、%作为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 */
}
/*结束*/

请看一下这个并给我提个建议

谢谢


Nagu..

您需要将它们添加到charset\u表配置中

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


虽然也有关于blend_chars的阅读

谢谢Barry..,但在我的配置文件中,没有定义charset_表。那我该怎么办呢。我正试图用这个注释粘贴配置文件代码。但在这里它不需要,显示为太长4941个字符。。这里我也没有上传文件的选项。你能推荐我吗?如果你没有,你可以加一个。你可以编辑你的问题,这有点像维基,如果你真的需要分享,可以添加你的配置。你好,巴里..,我用配置文件代码编辑了我的问题。请看一看并给我提建议。谢谢你,Nagu。你那里没有charset_表,所以你需要加一个。我最后的评论已经包括了一个直接链接到文档,如果你自己没有找到的话。谢谢Barry。正如你所说,我有charset_类型,charset_表索引_adsearch,如下所示。但它不起作用。你能建议吗。索引搜索{source=adsearch path=/cotserver/includes/searchengine/sphinx/data/index\u adsearch词法=stem\en min\u word\u len=0\min\u prefix\u len=5 min\u infix\u len=2 enable\u star=1 preopen=1 charset\u type=utf-8 charset\u table=0..9,A..Z->a、 .z,,-,@,#,$,a..z,U+0021..U+0029,U+002B..U+002F,U+003A..U+0040,U+007B,U+007C,U+007D}