solrsolr 全文检索实例,如果有敏感词汇,如何处置

基于SolrCloud平台的分布式全文检索系统的设计与实现
随着大数据时代的到来,海量数据不断涌入人们的日常生活、学习和工作中,如何存储和管理这些飞速增长的数据?如何从已有的这些海量数据中将对自己有用的信息准确高效地提取?面对这些日益严峻的挑战和经济突飞猛进地发展,各类政府机构也对业务信息化有了越来越高的需求,专项网络信息平台的建立已经成为当务之急。从最初的政务信息化到今天,政府机构已经积累了大量的结构化数据和非结构化数据,对于审计厅来说,各种报表和法律法规文档等全文数据更是数不胜数,这些数据都需要记录在案,当进行审计业务和审计法律法规重新修订等工作时,工作人员不得不大...展开
随着大数据时代的到来,海量数据不断涌入人们的日常生活、学习和工作中,如何存储和管理这些飞速增长的数据?如何从已有的这些海量数据中将对自己有用的信息准确高效地提取?面对这些日益严峻的挑战和经济突飞猛进地发展,各类政府机构也对业务信息化有了越来越高的需求,专项网络信息平台的建立已经成为当务之急。从最初的政务信息化到今天,政府机构已经积累了大量的结构化数据和非结构化数据,对于审计厅来说,各种报表和法律法规文档等全文数据更是数不胜数,这些数据都需要记录在案,当进行审计业务和审计法律法规重新修订等工作时,工作人员不得不大量翻阅这些历史文件。这种情况下仅仅利用原有的数据库查询功能,或者人工查阅实体文本资料将会严重影响工作效率,由此我们想到可以利用全文检索技术来满足政府机构的以上需求。通过对审计厅资料库内的各种数据进行全文索引,工作人员在需要某项信息时,可以检索到各种类型的数据。由于审计工作都是分季度进行的,所以在某个时段工作人员需要集中进行操作。综合以上分析,我们决定构建一个分布式的全文检索系统来满足审计厅的需求。本文利用基于Solr和ZooKeeper的分布式搜索方案,搭建Solr服务器集群,构成SolrCloud平台,在SolrCloud上创建、存储和管理大型资料库文档和数据库信息的索引,以此为基础,构建一个分布式的全文检索系统。用户可登陆系统,普通用户可以对企业内部大量文档进行检索、预览和下载等操作,除此之外,管理员还能上传、存储和管理这些文档,从而达到机构内部资料共享的目的。  文中首先探讨了全文检索和分布式搜索引擎的发展背景和研究现状,详细介绍了SolrCloud的架构和特点,以及全文检索的机理。接下来我们根据审计厅的具体要求,对分布式全文检索系统在四个层面上进行了需求分析,并对系统进行了开发环境设计,总体设计和详细设计,详细设计中给出了SolrCloud服务器集群、分布式索引、分布式检索的设计方案,随后介绍了以上设计方案的具体实现方法,并对索引的创建和检索响应进行了性能测试。文章最后对本文所做的全部工作进行了简单的总结,并且提出了可进一步研究的内容。收起
学位授予单位
机标分类号
本文读者也读过
加载中,请稍候
.客服电话
&&8:00-11:30,13:00-17:00(工作日)以前发布过的Lucene插件,后来很多人跟我说其实Solr更流行(反正我是觉得既然Solr是Lucene的子项目,那么稍微改改配置就能支持Solr),于是就抽空做了个Solr插件出来,开源在上,欢迎改进。
HanLP中文分词solr插件支持Solr5.x,兼容Lucene5.x。
将和共两个jar放入${webapp}/WEB-INF/lib下
修改solr core的配置文件${core}/conf/schema.xml:
&&&fieldType&name=&text_cn&&class=&solr.TextField&&
&&&&&&&analyzer&type=&index&&
&&&&&&&&&&&tokenizer&class=&com.hankcs.lucene.HanLPTokenizerFactory&&enableIndexMode=&true&/&
&&&&&&&/analyzer&
&&&&&&&analyzer&type=&query&&
&&&&&&&&&&&!--&切记不要在query中开启index模式&--&
&&&&&&&&&&&tokenizer&class=&com.hankcs.lucene.HanLPTokenizerFactory&&enableIndexMode=&false&/&
&&&&&&&/analyzer&
&&&/fieldType&
&&&!--&业务系统中需要分词的字段都需要指定type为text_cn&--&
&&&field&name=&my_field1&&type=&text_cn&&indexed=&true&&stored=&true&/&
&&&field&name=&my_field2&&type=&text_cn&&indexed=&true&&stored=&true&/&
Solr5中文分词器详细配置
对于新手来说,上面的两步可能太简略了,不如看看下面的step by step。本教程使用Solr5.2.1,理论上兼容solr5.x。
将上述两个jar放到solr-5.2.1/server/solr-webapp/webapp/WEB-INF/lib目录下。
首先在solr-5.2.1\bin目录下启动solr:
solr&start&-f
用浏览器打开,看到如下页面说明一切正常:
在solr-5.2.1\server\solr下新建一个目录,取个名字比如叫one,将示例配置文件solr-5.2.1\server\solr\configsets\sample_techproducts_configs\conf拷贝过来,接着修改schema.xml中的默认域type,搜索
&&&&&fieldType&name=&text_general&&class=&solr.TextField&&positionIncrementGap=&100&&
&&&&&&&&...
&&&&&/fieldType&
&&&&&!--&默认文本类型:&指定使用HanLP分词器,同时开启索引模式。
&通过solr自带的停用词过滤器,使用&stopwords.txt&(默认空白)过滤。
&在搜索的时候,还支持solr自带的同义词词典。--&
&&&&&fieldType&name=&text_general&&class=&solr.TextField&&positionIncrementGap=&100&&
&&&&&&&analyzer&type=&index&&
&&&&&&&&&tokenizer&class=&com.hankcs.lucene.HanLPTokenizerFactory&&enableIndexMode=&true&/&
&&&&&&&&&filter&class=&solr.StopFilterFactory&&ignoreCase=&true&&words=&stopwords.txt&&/&
&&&&&&&&&!--&取消注释可以启用索引期间的同义词词典
&&&&&&&&&filter&class=&solr.SynonymFilterFactory&&synonyms=&index_synonyms.txt&&ignoreCase=&true&&expand=&false&/&
&&&&&&&&--&
&&&&&&&&&filter&class=&solr.LowerCaseFilterFactory&/&
&&&&&&&/analyzer&
&&&&&&&analyzer&type=&query&&
&&&&&&&&&tokenizer&class=&com.hankcs.lucene.HanLPTokenizerFactory&&enableIndexMode=&true&/&
&&&&&&&&&filter&class=&solr.StopFilterFactory&&ignoreCase=&true&&words=&stopwords.txt&&/&
&&&&&&&&&filter&class=&solr.SynonymFilterFactory&&synonyms=&synonyms.txt&&ignoreCase=&true&&expand=&true&/&
&&&&&&&&&filter&class=&solr.LowerCaseFilterFactory&/&
&&&&&&&/analyzer&
&&&&&/fieldType&
意思是默认文本字段类型启用HanLP分词器,text_general还开启了solr默认的各种filter。
solr允许为不同的字段指定不同的分词器,由于绝大部分字段都是text_general类型的,可以说这种做法比较适合新手。如果你是solr老手的话,你可能会更喜欢单独为不同的字段指定不同的分词器及其他配置。如果你的业务系统中有其他字段,比如location,summary之类,也需要一一指定其type=&text_general&。切记,否则这些字段仍旧是solr默认分词器,会造成这些字段“搜索不到”。
另外,切记不要在query中开启indexMode,否则会影响PhaseQuery。indexMode只需在index中开启一遍即可,要不然它怎么叫indexMode呢。
如果你不需要solr提供的停用词、同义词等filter,如下配置可能更适合你:
&&&fieldType&name=&text_cn&&class=&solr.TextField&&
&&&&&&&analyzer&type=&index&&
&&&&&&&&&&&tokenizer&class=&com.hankcs.lucene.HanLPTokenizerFactory&&enableIndexMode=&true&/&
&&&&&&&/analyzer&
&&&&&&&analyzer&type=&query&&
&&&&&&&&&&&!--&切记不要在query中开启index模式&--&
&&&&&&&&&&&tokenizer&class=&com.hankcs.lucene.HanLPTokenizerFactory&&enableIndexMode=&false&/&
&&&&&&&/analyzer&
&&&/fieldType&
&&&!--&业务系统中需要分词的字段都需要指定type为text_cn&--&
&&&field&name=&my_field1&&type=&text_cn&&indexed=&true&&stored=&true&/&
&&&field&name=&my_field2&&type=&text_cn&&indexed=&true&&stored=&true&/&
完成了之后在solr的管理界面导入这个core one:
接着就能在下拉列表中看到这个core了:
上传测试文档
修改好了,就可以拿一些测试文档来试试效果了。hanlp-solr-plugin代码库中的src/test/resources下有个测试文档集合documents.csv,其内容如下:
1,你好世界
2,商品和服务
3,和服的价格是每镑15便士
4,服务大众
5,hanlp工作正常
代表着id从1到5共五个文档,接下来复制solr-5.2.1\example\exampledocs下的上传工具post.jar到resources目录,利用如下命令行将数据导入:
java&-Dc=one&-Dtype=application/csv&-jar&post.jar&*.csv
Windows用户的话直接双击该目录下的upload.cmd即可,Linux用户运行upload.sh。
正常情况下输出如下结果:
SimplePostTool&version&5.0.0
Posting&files&to&[base]&url&http://localhost:8983/solr/one/update&using&content-
type&application/csv...
POSTing&file&documents.csv&to&[base]
1&files&indexed.
COMMITting&Solr&index&changes&to&http://localhost:8983/solr/one/update...
Time&spent:&0:00:00.059
请按任意键继续.&.&.
同时刷新一下core one的Overview,的确看到了5篇文档:
是时候看看HanLP分词的效果了,点击左侧面板的Query,输入“和服”试试:
发现精确地查到了“和服的价格是每镑15便士”,而不是“商品和服务”这种错误文档:
这说明HanLP工作良好。
要知道,不少中文分词器眉毛胡子一把抓地命中“商品和服务”这种错误文档,降低了查准率,拉低了用户体验,跟原始的MySQL LIKE有何区别?
索引模式的功能
索引模式可以对长词进行全切分,得到其中蕴含的所有词汇。比如“中医药大学附属医院”在HanLP索引分词模式下的切分结果为:
中0&医1&药2&大3&学4&附5&属6&医7&院8&
[0:3&1]&中医药/n
[0:2&1]&中医/n
[1:3&1]&医药/n
[3:5&1]&大学/n
[5:9&1]&附属医院/nt
[5:7&1]&附属/vn
[7:9&1]&医院/n
开启indexMode后,无论用户搜索“中医”“中医药”还是“医药”,都会搜索到“中医药大学附属医院”:
目前本插件支持如下基于schema.xml的配置:
配置项名称
enableIndexMode
设为索引模式
enableCustomDictionary
是否启用用户词典
customDictionaryPath
用户词典路径(绝对路径或程序可以读取的相对路径,多个词典用空格隔开)
stopWordDictionaryPath
停用词词典路径
enableNumberQuantifierRecognize
是否启用数词和数量词识别
enableNameRecognize
开启人名识别
enableTranslatedNameRecognize
是否启用音译人名识别
enableJapaneseNameRecognize
是否启用日本人名识别
enableOrganizationRecognize
开启机构名识别
enablePlaceRecognize
开启地名识别
enableNormalization
是否执行字符正规化(繁体-&简体,全角-&半角,大写-&小写)
enableTraditionalChineseMode
开启精准繁体中文分词
对于更高级的配置,HanLP分词器主要通过class path下的hanlp.properties进行配置,请阅读以了解更多相关配置,如:
在Query改写的时候,可以利用HanLPAnalyzer分词结果中的词性等属性,如
String&text&=&&中华人民共和国很辽阔&;
for&(int&i&=&0;&i&&&text.length();&++i)
&&&&System.out.print(text.charAt(i)&+&&&&+&i&+&&&&);
System.out.println();
Analyzer&analyzer&=&new&HanLPAnalyzer();
TokenStream&tokenStream&=&analyzer.tokenStream(&field&,&text);
tokenStream.reset();
while&(tokenStream.incrementToken())
&&&&CharTermAttribute&attribute&=&tokenStream.getAttribute(CharTermAttribute.class);
&&&&//&偏移量
&&&&OffsetAttribute&offsetAtt&=&tokenStream.getAttribute(OffsetAttribute.class);
&&&&//&距离
&&&&PositionIncrementAttribute&positionAttr&=&kenStream.getAttribute(PositionIncrementAttribute.class);
&&&&//&词性
&&&&TypeAttribute&typeAttr&=&tokenStream.getAttribute(TypeAttribute.class);
&&&&System.out.printf(&[%d:%d&%d]&%s/%s\n&,&offsetAtt.startOffset(),&offsetAtt.endOffset(),&positionAttr.getPositionIncrement(),&attribute,&typeAttr.type());
在另一些场景,支持以自定义的分词器(比如开启了命名实体识别的分词器、繁体中文分词器、CRF分词器等)构造HanLPTokenizer,比如:
tokenizer&=&new&HanLPTokenizer(HanLP.newSegment()
&&&&&&&&&&&&&&&&&&&&.enableJapaneseNameRecognize(true)
&&&&&&&&&&&&&&&&&&&&.enableIndexMode(true),&null,&false);
tokenizer.setReader(new&StringReader(&林志玲亮相网友:确定不是波多野结衣?&));
技术问题请&,大家一起讨论,也方便集中管理。博客留言、微博私信、邮件不受理任何HanLP相关的问题,谢谢合作!
反馈问题的时候请一定附上版本号、触发代码、输入输出,否则无法处理。
Apache License Version 2.0
分享到: ()
我的开源项目君,已阅读到文档的结尾了呢~~
广告剩余8秒
文档加载中
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
基于Solr的分布式全文检索系统的与实现
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口16:41 提问
solrcloud与Hadoop整合达到对文件内容的全文检索
我想做的是solrcloud在Hadoop中使用,但是我不知道怎么使用solr对文件进行全文检索,也就是对文件的内容进行全文检索,请大神指教
按赞数排序
请问后来这个问题解决了吗
其他相关推荐
其他相似问题solr6.6搜索环境搭建、IK中文分词、同义词、拼音、solrj的使用 - 第四产权-研发中心 - ITeye博客
博客分类:
Apache官网发布了solr6.6版本下载地址
solr6.6搜索环境搭建、IK中文分词同义词拼音solrj的使用
部署环境:Tomcat8
solr版本:6.6
解压solr,将目录\solr-6.6.0\server\solr-webapp下了webapp文件夹拷贝至
Tomcat的webapp目录下.改名为solr
将olr-6.6.0/server/lib/ext中所有jar包拷贝至\webapps\solr\WEB-INF\lib下,
将\solr-6.6.0\dist\solrj-lib下的noggit-0.6.jar拷贝至\webapps\solr\WEB-INF\lib下,
将olr-6.6.0/server/lib/中所有以metrics-开头jar包拷贝至\webapps\solr\WEB-INF
在WEB-INF下件新建classes文件夹,然后将\solr-6.6.0\server\resources中
log4j.properties拷贝至classes下.
将\solr-6.6.0\server目录下solr文件拷贝至任意位置.(我这里是G:\solrhome)改名
为solrhome.作为索引存放位置
在solrhome目录下,新建collection1文件夹,并将 /solr-6.6.0/server/solr/configsets/basic_configs
中conf文件夹复制到新建的collection1文件夹中.在collection1目录下新建data文件夹.
collection1中创建文件core.properties,写入内容
name=collection1
config=solrconfig.xml
schema=schema.xml
dataDir=data
回到Tomcat目录下,打开\webapps\solr\WEB-INF\web.xml文件.打开被注释的&env-entry&,
修改路径为solrhome的路径
&env-entry&
&env-entry-name&solr/home&/env-entry-name&
&env-entry-value&G:\solrhome&/env-entry-value&
&env-entry-type&java.lang.String&/env-entry-type&
&/env-entry&
将底部&security-constraint&注释掉;
访问 localhost:8080/solr/index.html
接下来就是配置IK中文分析器:
solr本身带有中文分词器,不过其不支持自己添加词汇,选用IK分词器,不过IK在2012年已经停止更新了,
但是这里附件提供了最新的IK支持.
将ik-analyzer-solr5-5.x.jar和solr-analyzer-ik-5.1.0.jar复制到\solr\WEB-INF\lib下,将IKAnalyzer.cfg.xml、ext.dic、stopword.dic
三个文件复制到\solr\WEB-INF\classes下ext.dic文件里为自定义的扩展词汇,
stopword为自定义的停用词
接下来开始定义
&fieldType name="text_ik" class="solr.TextField"&
&analyzer type="index"&
&tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" isMaxWordLength="false" useSmart="false" /&
&filter class="solr.LowerCaseFilterFactory" /&
&/analyzer&
&analyzer type="query"&
&tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory"
isMaxWordLength="false" useSmart="false" /&
&filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt"
ignoreCase="true" expand="true" /&
&filter class="solr.LowerCaseFilterFactory" /&
&/analyzer&
&/fieldType&
这个时候就可以测试一下是否成功了.
已经成功分词了..
针对企业级应用就要配置自定义的Field.此处不做详细描述.在
一般情况是根据实际情况分配.此示例仅供参考.
注意:需要对其中文分词提供搜索type属性必须为前面配置的IK名一样.
唯一索引id在solr中就叫ID并且是必须字段,所以不需单独配置
&!--product--&
&field name="product_name" type="text_ik" indexed="true" stored="true"/&
&field name="product_price"
type="float" indexed="true" stored="true"/&
&field name="product_description" type="text_ik" indexed="true" stored="false" /&
&field name="product_picture" type="string" indexed="false" stored="true" /&
&field name="product_catalog_name" type="string" indexed="true" stored="true" /&
&field name="product_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/&
&copyField source="product_name" dest="product_keywords"/&
&copyField source="product_description" dest="product_keywords"/&
用product_keywords作为默认的搜索域,搜索时联合product_name和product_description进行搜索
利用solr提供的客户端开始关联数据库.实现批量数据的导入.
&requestHandler name="/dataimport"
class="org.apache.solr.handler.dataimport.DataImportHandler"&
&lst name="defaults"&
&str name="config"&data-config.xml&/str&
&/requestHandler&
根据实际情况配置
&?xml version="1.0" encoding="UTF-8" ?&
&dataConfig&
&dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/solrDemo"
user="root"
password="root"/&
&document&
&entity name="product" query="SELECT pid,name,catalog_name,price,description,picture FROM products "&
&field column="pid" name="id"/&
&field column="name" name="product_name"/&
&field column="catalog_name" name="product_catalog_name"/&
&field column="price" name="product_price"/&
&field column="description" name="product_description"/&
&field column="picture" name="product_picture"/&
&/document&
&/dataConfig&
solr-dataimporthandler-extras-6.6.0.jar复制到solr/
在solrhome\collection1\conf\
entity是data-config.xml里面的entity
如图,搜索房产,地产,不动产任意一个,则三个结果都会出现.
直接使用solr分词实现.就在原先IK配置上加上
&filter class="com.shentong.search.analyzers.PinyinTransformTokenFilterFactory" minTermLenght="2" /&
&filter class="com.shentong.search.analyzers.PinyinNGramTokenFilterFactory" minGram="1" maxGram="20" /&
pinyinAnalyzer4.3.1.jar和pinyin4j-2.5.0.jar
修改后的属性介绍:
pinyin:属性是指全拼音,如重庆:chognqing,zhongqing默认为true,
isFirstChar:属性是指简拼.如重庆:cq,zq默认为都为TRUE则都有.
minTermLenght="2"至少为两个字符才转拼音,
minGram:这里配置的是2,因为如果1的话拼音简写会拆成单个字母,如重庆:cq,zq,c,z,q;
影响很严重;
&filter class="top.pinyin.index.solr.PinyinTokenFilterFactory" pinyin="true"
isFirstChar="true" minTermLenght="2" /&
&fieldType name="text_ik" class="solr.TextField"&
&analyzer type="index"&
&tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" isMaxWordLength="false" useSmart="false" /&
&filter class="solr.LowerCaseFilterFactory" /&
&filter class="top.pinyin.index.solr.PinyinTokenFilterFactory" pinyin="true" isFirstChar="true" minTermLenght="2" /&
&filter class="com.shentong.search.analyzers.PinyinNGramTokenFilterFactory" minGram="2" maxGram="20" /&
&/analyzer&
&analyzer type="query"&
&tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" isMaxWordLength="false" useSmart="false" /&
&filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" /&
&filter class="solr.LowerCaseFilterFactory" /&
&/analyzer&
&/fieldType&
结果如下: 但是:在开启高亮显示时进行搜索时发现,报错了.原因是solr的千古难题lucene默认的高亮机制会出问题.暂时没有解决办法,可能需要修改solr源码,
因为高亮显示的字段和搜索关键字长度不一致造成的,因为建立索引时一个关键字被索引成拼音和同义词,在搜索时使用拼音或同义词虽然查询出结果,
但是在高亮时回显的并不是拼音和同义词所以长度会不一致,同义词可以改成索引时不存储同义词,在query时查询时将关键字转换成多个同义词查询,
在回显时高亮的内容和关键字是匹配的所以不会出问题,如上是这样配置的.但却不能将拼音转汉字.所以只能选择简拼搜索,就是首字母那样长度是一致的
方案二:使用solrj工具将中文分词,之后利用pinyin4j将数据的拼音存储数据库,
用逗号隔开.建立Field,type选择text_general.它可以根据逗号拆分
并且不会将拼音再次拆分了.如果是中文的话就会把中文拆分成单个字.
此处就不演示了.此方法好处是便于维护,及对拼音进行处理和修改.
方案三:同义词,不推荐;
和solr-core-6.6.0.jar和solrj-lib文件夹下的jar包
(URL);发现这个方法已经过时,现在使用
HttpSolrClient httpSolrClient = new HttpSolrClient.Builder("URL").build();
注意:在使用查询的时候,需要对一些特殊字符转义,因为solr中很多特殊符号有着不同的意义,
那么可以直接调用
ClientUtils.escapeQueryChars(key);就可以返回转义后的字符串了.
HttpSolrClient httpSolrClient = new HttpSolrClient.Builder("http://localhost:8080/solr/collection1").build();
SolrQuery query = new SolrQuery();//获取查询
query.setQuery("关*");//设置搜索关键词,注意:因为使用了IK中文分词,有时单个字符搜索不会出现结果,那么就需要使用通配符*代替.
query.set("df", "product_keywords");//设置默认搜索域,前面定义的
query.set("fq", "product_price:[0 TO 20]");//设置筛选条件,可多个
query.setStart(0);//设置开始的条数
query.setRows(10);//设置显示条数
query.addSort("score", ORDER.desc); //设置排序方式,可添加多个排序方式,有顺序的优先级.score为默认的排序方式,会根据结果的符合度排序.
//若不设置默认为score,若设置别的排序.则不会默认score,和空参构造.有参构造同理.
query.setHighlight(true);//设置高亮
query.addHighlightField("product_name");//设置高亮的field.
query.setHighlightSimplePre("&font color='red'&");
query.setHighlightSimplePost("&/font&");
QueryResponse response = httpSolrClient.query(query);//执行查询.返回结果
long numFound = response.getResults().getNumFound();//查询总共条数
List&Map&String, Object&& resultList = response.getResults();//返回结果集
for (SolrDocument doc : resultList ) {
Map&String, Map&String, List&String&&& highlighting = response.getHighlighting();//获取高亮
List&String& productNames = highlighting.get((String) doc.get("id")).get("product_name");//取得高亮如果有,第一个值就是.这个地方和老版本不同,老版本是通过ID取,这里是通过ID的值区
下载次数: 33
(204.9 KB)
下载次数: 14
下载次数: 13
描述: 修改后的pinyin,支持多音,允许简拼和拼音同时存在
下载次数: 17
浏览: 1306 次
来自: 成都
好好,值得收藏谢谢

我要回帖

更多关于 java 全文检索 solr 的文章

 

随机推荐