现象: 在搜索处输入 2012~2013 ,搜索报错
解决办法:
(1) 在StringUtil中添加 如下方法
/**
* 过滤特殊字符
* @param str
* @return
*/
public static String replaceSpecialStr(String str) {
if(isEmpty(str)) {
return str;
}
// 特殊字符列表
String[] specialStr = { "!", "||", "-", "(", ")"
,"{", "}", "[", "]", "^", "\"", ":", ";" ,
"+", "&&", "~", "*", "?", "AND", "NOT",
"OR", "(", ")", "【", "】", "\\", "<", ">"};
for(String s : specialStr) {
str = str.replace(s, "");
}
return str;
}
搜索服务实现类中:
(2)model.setKeyWord(StringUtil.filter(model.getKeyWord()));
model.setKeyWord(SolrUtil.escapeChar(model.getKeyWord())); 代码位置处
/** 需要将特殊符号进行转义*/
String keyWordTemp = model.getKeyWord();
model.setKeyWord(StringUtil.filter(model.getKeyWord()));
model.setKeyWord(SolrUtil.escapeChar(model.getKeyWord()));
model.setKeyWord(StringUtil.replaceSpecialStr(model.getKeyWord()));
(3) SolrPageResultContainer solrPageResultContainer = queryResult.getSolrPageResultContainer();
后 添加 如下,再return SolrServer.getPageResultContainerBySolr(solrPageResultContainer);
model.setKeyWord(keyWordTemp);
相关推荐
4. **组合多个InputFilter**:有时我们需要同时应用多种过滤规则,例如限制长度和过滤特殊字符。在这种情况下,可以创建一个InputFilter数组,将多个InputFilter放入其中,然后一起设置给EditText。 以下是一个简单...
2. 字符串处理:全文检索引擎会处理大量的文本数据,因此字符串操作至关重要。C++的`std::string`类提供了丰富的字符串操作函数,如查找子串、分割、比较等,用于处理关键词和文件内容。 3. 数据结构:为了提高搜索...
### 中文停用词表(包含大部分特殊字符) #### 知识点概述 在自然语言处理(NLP)领域,停用词表是一项基础而重要的工具。停用词是指在信息检索、文本挖掘等场景中频繁出现但通常不携带实际语义信息的词汇。中文...
在创建索引时,需要定义文档的格式和解析规则,以便正确处理各种特殊字符和结构。 3. **词干提取和停用词**:Oracle全文检索使用词干提取算法将词汇还原到其基本形式,如“running”变为“run”。同时,系统会自动...
在NLP中,特殊字符集的处理是一个关键环节,因为这些字符往往对文本分析、语义理解以及信息抽取等任务产生重要影响。 特殊字符包括但不限于标点符号、数字、符号、非ASCII字符、特殊格式字符等。这些字符在文本中起...
以下是`strFilter`函数中过滤的部分特殊字符及其含义: 1. 特殊字符如`~`、`!`、`@`、`#`、`$`、`%`、`^`、`&`、`*`、`(`、`)`、`-`、`_`、`+`、`=`、`|`、`\`、`[`、`]`、`{`、`}`、`;`、`:` 这些字符在编程中常...
2. **数据预处理**:清洗抓取的数据,去除HTML标签、特殊字符,可能还需要进行分词处理,以便于后续索引和检索。 3. **配置Solr**:安装和配置Solr服务器,创建索引库,定义字段类型和字段,设定分词器和过滤器。 ...
`addslashes()`函数通常在将数据插入数据库之前使用,它会在字符串中的特殊字符(例如单引号`'`和双引号`"`)前加上反斜杠`\`,从而避免SQL注入等问题。相对地,`stripslashes()`则是将这些转义字符去除,通常在从...
本文将汇总一些常用的PHP函数,用于过滤和处理表单提交的特殊字符,确保数据安全。 1. htmlspecialchars函数: 此函数将特殊字符转换为HTML实体,防止它们在浏览器中被解析为它们的原始含义。例如,它会将'&'转换为...
在全文检索技术中,Lucene 是一个非常重要的开源搜索引擎库,它提供了强大的文本分析和索引功能。在处理中文文本时,由于中文的特殊性,需要进行分词处理才能有效地进行搜索。本篇博客主要讨论了如何使用 Lucene ...
- **数据读取与处理**:从`tab_name`表中读取表名,使用特殊字符(如“@”)连接它们形成字符串,然后将其分割成数组进行后续处理。 - **中文字段名读取**:利用Oracle的视图读取中文字段名,并使用相同的方法将结果...
4. **正则表达式**:正则表达式是一种强大的文本匹配工具,可以匹配复杂的模式,如连续的敏感字符、特殊符号等。在Java中,可以使用`java.util.regex`包提供的API来实现正则匹配。 5. **多线程处理**:当需要处理...
正则表达式,又称规则表达式(Regular Expression,在代码中常简写为...正则表达式的语法可以分为特殊字符、边界匹配符、逻辑操作符和量词等。这些基本的语法规则合成使用,共同构成了正则表达式强大的表示和匹配功能。
这通常涉及到去除标点符号、数字和特殊字符,以及处理大小写问题。 3. **关键字识别过滤器**:这个阶段,程序会寻找用户指定的关键词,并记录其出现的位置。 4. **上下文提取过滤器**:一旦找到关键词,过滤器会...
特别是处理多语言数据或有特殊字符需求时,选择合适的字符集和字符序至关重要。 7. **影响和后果**:选择错误的字符集可能导致乱码,尤其是在处理非ASCII字符时。不正确的字符序设置可能影响到数据的排序和比较逻辑...
这包括去除标点符号、数字、特殊字符等,转换为小写,以及分词。C#中的正则表达式(`System.Text.RegularExpressions`命名空间)非常方便进行这样的操作。 3. **关键词检索**:实现一个函数来查找文本中所有出现的...
在转化过程中,需要注意处理多音字和特殊字符,确保结果准确无误。 接下来,系统会收集所有联系人的拼音首字母,并以某种形式存储。这可能是一个按照拼音首字母排序的列表,或者是一个哈希表,其中键是首字母,值是...
Trie树是一种字符串检索的数据结构,它通过节点之间的链接来表示前缀关系。每个节点包含一个字符,从根节点到任意节点的路径上经过的字符组合构成了一个字符串。在Go-go-wordsfilter中,每个敏感词都会被插入到这个...