solr进阶九:solr对数字和单个字符的搜索

solr中配有分词器,但分词器里面有大写转换为小写的过滤器时,数字就会被过滤。比如123中国ABC。123就会被过滤掉了,所以才查1|12|123都会失败。

Solr 数字字符不能搜索的一个问题》这篇博文说得还算详细,我就是学这篇文章的。

根据账号来搜索,当账号在数据库中是整型变量时,导入到solr中,配置单个数字的过滤字段时,是搜索不出任何信息的,这不知什么原因,有时间要好好研究一下schema.xml这个配置文件先。

在schema.xml这个配置文件中加入字段类型:

<fieldType name="text_inclunum" class="solr.TextField" positionIncrementGap="100">
		<analyzer type="index">
			<tokenizer class="solr.WhitespaceTokenizerFactory"/>
			<filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="50" side="front"/>
		</analyzer>
		<analyzer type="query">
			<tokenizer class="solr.WhitespaceTokenizerFactory"/>
			<filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="50" side="front"/>
		</analyzer>
	</fieldType>

"solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="50")这个就是从左到右一个一个分词的。

让我们的字段使用这个字段类型:

在分析里面做一下分析,看能不能切割:

没问题!接着在搜索里面搜索:

也没问题,最符合条件的排在前面,其次的排在后面。

剩下的事情就简单了,按照前面的教程,改一下配置参数,输入两个字符就触发:

最后呈现的结果为:

前面的是最符合的:

时间: 2024-07-29 20:50:25

solr进阶九:solr对数字和单个字符的搜索的相关文章

Python进阶(九)----os,sys,hashlib模块

Python进阶(九)----os,sys,hashlib模块 一丶序列化模块 什么是序列化: ? 将一种数据结构,转换成一个特殊的序列(特殊字符串,用于网络传输,或文件保存) ? 真正的意义:变量从内存中变成可存储或传输的过程称之为序列化 json模块: ? 是所有语言公认的一种序列,最常用,支持的数据结构有限:"list(tuple), int .str ,bool,None,float." ### dumps ,loads : 主要网络传输 , 用于文件的读取. import j

9. 蛤蟆的数据结构进阶九哈希表实现

9. 蛤蟆的数据结构进阶九哈希表实现 本篇名言:"人们所努力追求的庸俗的目标 --我总觉得都是可鄙的. -- 爱因思坦" 上篇我们看了哈希表的相关定义和概念,这篇来看下如何来实现. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/47362781 1.  代码实现 1.1             Main 函数定义哈希元素数组 10个元素. 定义哈希表变量. 调用InitHashTable构造一个空的哈希表. 然后循

从老solr导入新solr

#!/usr/bin/python import solr import re import urllib import pycurl import cStringIO import collections import operator import string import json import pysolr def solr_update(value): pass def function(value): value_1={} keys=value.keys() t1=value[ke

Solr学习总结 Solr的安装与配置

接着前一篇,这里总结下Solr的安装与配置 1.准备 1.安装Java8 和 Tomcat9 ,java和tomcat 的安装这里不再重复.需要注意的是这两个的版本兼容问题.貌似java8 不支持,tomcat7 以下版本. 2.下载 solr安装包,目前的最新版本是  5.3.1 下载地址:http://www.apache.org/dyn/closer.lua/lucene/solr/5.3.1 2.安装 1.  将 solr 压缩包解压,并将solr-5.3.1\server\solr-w

python进阶九_网络编程(一)

Python网络编程一 一.一些基本概念 在Python网络编程这一节中会涉及到很多网络相关的术语,对于一些最基本的概念,如TCP/IP,Socket等等不再赘述,不明白的可以自己去查一查,对于一些常见但是可能不是很熟悉的术语这里做了一个简要的介绍,后续遇到不会因此止步. SNTP:简单网络时间协议(Simple Network Time  Protocol)简单来说就是用来同步因特网中的计算机时钟,需要注意的是这里的SNTP是用户数据报(UDP)协议. MIME:Multipurpose In

solr入门之solr安全控制的研究和实践(二)

Permission Attributes(权限属性) 每个用户又一个或者几个权限组成,每个权限由几个定义过可以做哪些事的属性组成. 下面有一些不能被修改的预定义权限: Pre-defined Permissions 有一些预定义的权限.这些固定的默认值,不能修改,无法添加新属性.要使用这些属性,只需定义一个角色,包括这个权限, 然后给一个用户分配角色. security-edit: 该许可允许编辑安全配置,这意味着任何更新的操作修改security.json 通过api将被允许. securi

机器学习进阶-项目实战-信用卡数字识别 1.cv2.findContour(找出轮廓) 2.cv2.boudingRect(轮廓外接矩阵位置) 3.cv2.threshold(图片二值化操作) 4.cv2.MORPH_TOPHAT(礼帽运算突出线条) 5.cv2.MORPH_CLOSE(闭运算图片内部膨胀) 6. cv2.resize(改变图像大小) 7.cv2.putText(在图片上放上文本)

7. cv2.putText(img, text, loc, text_font, font_scale, color, linestick) # 参数说明:img表示输入图片,text表示需要填写的文本str格式,loc表示文本在图中的位置,font_size可以使用cv2.FONT_HERSHEY_SIMPLEX, font_scale表示文本的规格,color表示文本颜色,linestick表示线条大小 信用卡数字识别: 信用卡      数字模板涉及到的内容:主要是采用模板匹配的思想 思

字符串中单个字符的用法

我们使用字符串时经常要对字符串中单个字符进行处理,比如检测一个string对象是否包含空白,或者把string对象中的字母大写改为小写,查看某个特定字符是否出现,判断字符串是否为数字等等. 这类处理的关键是要获取字符本身.有时需要处理string对象中的每一个字符,另外一些时候则只需处理某个特定的字符,还有些时候遇到某个条件处理就要停下来. 在cctype头文件中定义了一组标准库函数处理字符串的工作. cctype头文件中的函数 isalnum(c)    当c是字母或数字时为真 isalpha

JPQL模糊匹配单个字符

JPQL模糊匹配,不是%,而是单个字符,该怎么办?比如我要查出数据库中满足后三位是数字的字符串 对于mysql来说,使用通配符 %和_可以轻松解决,但是对于JPQL来说模糊查询就伤脑筋了... 有一个方法,可以使用like查询出来以后,再在java代码里进行过滤.虽然很笨,但也有效