我在索引中执行各种regepx_filters来修改存储的索引文本,这来自最初采用标记的html格式(多个区域)的数据。在我这样做之后,现在可以根据第一个修改后的索引创建第二个索引,该索引仅使用原始索引中的一个区域吗?
index_zones = Title, Author, Description
我可以在使用自定义配置对其进行索引后,然后以某种方式复制此索引
Create IndexB based on IndexA using ZONE:(Title) only
比如说我做了以下正则表达式:
regexp_filter=(<Title>.*?ipad.*?)(<\/Title>)<Description>.*?Used.*?<\/Description>=>\1 Used\2 in order to index used into the Title Zone.
现在我想重新索引或仅使用新索引的
创建一个新索引<Title>Bla bla ipad bla bla Used</Title>
这可能吗?如果没有,我可以用新索引的文本更新我的Mysql表吗?
答案 0 :(得分:2)
我认为根据现有的狮身人面像指数创建索引是不可能的。我也不认为可以检索regexp_filtered结果 - 我很确定它只能用于查询。
为什么你不在狮身人面像索引之前做你的正则表达式?例如,创建一个新的db列ipad_used_regex
并使用您选择的任何脚本语言填充它。或者使用mariaDb
和PCRE Regex Enhancements,你可以在SQL中构建正则表达式匹配,如下所示:
SELECT Title, REGEXP_REPLACE(Title, "(<Title>.*?ipad.*?)(<\/Title>)<Description>.*?Used.*?<\/Description>", '\\1 Used\\2') as ipad_used_regex
FROM `your_table`
然后您可以在sphinx索引源中使用此SQL?