本文共 2870 字,大约阅读时间需要 9 分钟。
使用全文检索,中文分词是离不开的,这里我采用的是 mmseg4j 分词器。mmseg4j分词器内置了对solr的支持,最新版本可支持4.X版本的sorl,使用起来很是方便。
GoogleCode地址:
请下载最新版本:mmseg4j-1.9.1,然后将mmseg4j-1.9.1/dist下的jar包拷贝至solr.war的lib目录,例如:apache-tomcat-6.0.36/webapps/solr/WEB-INF/lib/
使用mmseg4j中文分词器,首先需要在schema.xml文件中配置一个fieldType节点:
然后就可以在field节点中引用该filedType了,假设你有个字段叫content需要支持中文分词,则需要定义示例filed节点如下:
接下来,重启solr服务器。
我这里使用的是broadleaf项目(broadleaf是什么,请参考:)中的schema.xml,需要修改成如下:
id
接下来,在浏览器中进行测试,输入下面url:
http://192.168.56.123:8080/solr/primary_shard2_replica1/select?q=*%3A*&wt=json&indent=true&rows=6&start=0&fq=category%3A2002&fq=namespace%3Ad&fq=%7B%21tag%3Da%7D%28en_US_name_s%3A大理%29
以上搜索的是category=2002,namespace=d,en_US_name_s
=大理的记录,查询结果为:
{ "responseHeader":{ "status":0, "QTime":20}, "response":{ "numFound":1,"start":0,"maxScore":1.0,"docs":[ { "namespace":"d", "id":"5", "productId":5, "explicitCategory":[2002], "category_2002_sort_i":4, "category":[2002, 1, 2], "price_p":480.0, "en_US_name_t":"大理风情", "en_name_t":"大理风情", "en_US_name_s":"大理风情", "en_name_s":"大理风情", "en_US_desc_t":"体验不一样的风景", "en_desc_t":"体验不一样的风景", "en_US_ldesc_t":"大理风情养老基地坐落在美丽的洱海边,这里依山傍水,鲜花遍地,适合老年人居住、旅游。", "en_ldesc_t":"大理风情养老基地坐落在美丽的洱海边,这里依山傍水,鲜花遍地,适合老年人居住、旅游。", "en_US_city_t":"5329", "en_city_t":"5329", "en_US_city_i":5329, "en_city_i":5329, "en_US_hotelType_t":"A", "en_hotelType_t":"A", "en_US_hotelType_s":"A", "en_hotelType_s":"A", "en_US_county_t":"532901", "en_county_t":"532901", "en_US_county_i":532901, "en_county_i":532901, "en_US_estatePrice_p":480.0, "en_estatePrice_p":480.0, "_version_":1462514915941023744}] }}
通过查询结果,可以知道:只搜索”大理”关键字,可以查询出en_US_name_s
为”大理风情”的记录。
转载地址:http://lbcda.baihongyu.com/