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