`

全文检索特珠字符过滤

    博客分类:
  • solr
 
阅读更多

现象: 在搜索处输入 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);

 

 

 

分享到:
评论

相关推荐

    Android开发之EditText字符串过滤器InputFilter

    4. **组合多个InputFilter**:有时我们需要同时应用多种过滤规则,例如限制长度和过滤特殊字符。在这种情况下,可以创建一个InputFilter数组,将多个InputFilter放入其中,然后一起设置给EditText。 以下是一个简单...

    C++简易文件全文检索引擎

    2. 字符串处理:全文检索引擎会处理大量的文本数据,因此字符串操作至关重要。C++的`std::string`类提供了丰富的字符串操作函数,如查找子串、分割、比较等,用于处理关键词和文件内容。 3. 数据结构:为了提高搜索...

    中文停用词表(包含大部分特殊字符)

    ### 中文停用词表(包含大部分特殊字符) #### 知识点概述 在自然语言处理(NLP)领域,停用词表是一项基础而重要的工具。停用词是指在信息检索、文本挖掘等场景中频繁出现但通常不携带实际语义信息的词汇。中文...

    oracle全文检索

    在创建索引时,需要定义文档的格式和解析规则,以便正确处理各种特殊字符和结构。 3. **词干提取和停用词**:Oracle全文检索使用词干提取算法将词汇还原到其基本形式,如“running”变为“run”。同时,系统会自动...

    NLP,自然语言处理,特殊字符集

    在NLP中,特殊字符集的处理是一个关键环节,因为这些字符往往对文本分析、语义理解以及信息抽取等任务产生重要影响。 特殊字符包括但不限于标点符号、数字、符号、非ASCII字符、特殊格式字符等。这些字符在文本中起...

    PHP字符串中特殊符号的过滤方法介绍

    以下是`strFilter`函数中过滤的部分特殊字符及其含义: 1. 特殊字符如`~`、`!`、`@`、`#`、`$`、`%`、`^`、`&`、`*`、`(`、`)`、`-`、`_`、`+`、`=`、`|`、`\`、`[`、`]`、`{`、`}`、`;`、`:` 这些字符在编程中常...

    人工智能-项目实践-搜索引擎-对百度百科进行爬取,通过solr搜索引擎实现全文检索

    2. **数据预处理**:清洗抓取的数据,去除HTML标签、特殊字符,可能还需要进行分词处理,以便于后续索引和检索。 3. **配置Solr**:安装和配置Solr服务器,创建索引库,定义字段类型和字段,设定分词器和过滤器。 ...

    几个有用的php字符串过滤,转换函数代码

    `addslashes()`函数通常在将数据插入数据库之前使用,它会在字符串中的特殊字符(例如单引号`'`和双引号`"`)前加上反斜杠`\`,从而避免SQL注入等问题。相对地,`stripslashes()`则是将这些转义字符去除,通常在从...

    PHP对表单提交特殊字符的过滤和处理方法汇总

    本文将汇总一些常用的PHP函数,用于过滤和处理表单提交的特殊字符,确保数据安全。 1. htmlspecialchars函数: 此函数将特殊字符转换为HTML实体,防止它们在浏览器中被解析为它们的原始含义。例如,它会将'&'转换为...

    全文检索技术学习(三)——Lucene支持中文分词 - 李阿昀的博客 - CSDN博客1

    在全文检索技术中,Lucene 是一个非常重要的开源搜索引擎库,它提供了强大的文本分析和索引功能。在处理中文文本时,由于中文的特殊性,需要进行分词处理才能有效地进行搜索。本篇博客主要讨论了如何使用 Lucene ...

    JSP+oracle实现小型多关键字检索模块

    - **数据读取与处理**:从`tab_name`表中读取表名,使用特殊字符(如“@”)连接它们形成字符串,然后将其分割成数组进行后续处理。 - **中文字段名读取**:利用Oracle的视图读取中文字段名,并使用相同的方法将结果...

    java敏感词检索工具

    4. **正则表达式**:正则表达式是一种强大的文本匹配工具,可以匹配复杂的模式,如连续的敏感字符、特殊符号等。在Java中,可以使用`java.util.regex`包提供的API来实现正则匹配。 5. **多线程处理**:当需要处理...

    正则表达式是对字符串操作的一种逻辑公式.docx

    正则表达式,又称规则表达式(Regular Expression,在代码中常简写为...正则表达式的语法可以分为特殊字符、边界匹配符、逻辑操作符和量词等。这些基本的语法规则合成使用,共同构成了正则表达式强大的表示和匹配功能。

    带你5分钟读懂MySQL字符集设置

    特别是处理多语言数据或有特殊字符需求时,选择合适的字符集和字符序至关重要。 7. **影响和后果**:选择错误的字符集可能导致乱码,尤其是在处理非ASCII字符时。不正确的字符序设置可能影响到数据的排序和比较逻辑...

    KWIC系统(关键字检索)

    这包括去除标点符号、数字、特殊字符等,转换为小写,以及分词。C#中的正则表达式(`System.Text.RegularExpressions`命名空间)非常方便进行这样的操作。 3. **关键词检索**:实现一个函数来查找文本中所有出现的...

    拼音首字母检索

    在转化过程中,需要注意处理多音字和特殊字符,确保结果准确无误。 接下来,系统会收集所有联系人的拼音首字母,并以某种形式存储。这可能是一个按照拼音首字母排序的列表,或者是一个哈希表,其中键是首字母,值是...

    Go-go-wordsfilter是一个高性能的Go敏感词过滤器

    Trie树是一种字符串检索的数据结构,它通过节点之间的链接来表示前缀关系。每个节点包含一个字符,从根节点到任意节点的路径上经过的字符组合构成了一个字符串。在Go-go-wordsfilter中,每个敏感词都会被插入到这个...

    过滤后的文件(上一个是源文件)

    4. **处理特殊字符**:列表中出现了一些特殊字符,如“е”、“Ҳ”、“Ł”等,这可能是由于原始文本中包含了非英文字符或特定领域的专业术语。处理这类字符时需要注意保持其原意,并确保在分析过程中不会丢失信息...

Global site tag (gtag.js) - Google Analytics