菜鸟级文章,高手请绕道.
基本事情背景是这样, 在公司的抓取回来的数据中,都有大量的来源不同网站的域名.这时用户可能只对某几个来源网站感兴趣,或者对某几个来源网站不感兴趣之类,以前的版本中,只对网站域名做了非常简单的分词,基本上可以认为是对 www.it.com.cn 之类的网站,通过 "." 把域名拆开,然后索引.这样用户在搜索某几个域名的网站,直接就可以匹配到了.
但这样形式在最近用户提出的问题中需要处理了. 原来当时我们理解用户的要求有点偏差,其中主要是集中两个问题
1. 比如用户搜索来源于 www.it.com 这个网站, 但搜索出来 www.it.com.cn 这样的网站了. 但用户并不希望它出现.
2. 另外有一些来源网站有N多个二级域名例如 iteye.com 这一个网站,都以用户名作为二级域名了, 这样用户在希望关注 iteye.com 的文章的时候,自然只输入搜索域名 "iteye.com" 了,但却出现了非常多其他第三网站如: iteye.abc.com , iteye.archve.com 之类的非法的网站.
上面说了这么多,其实根本就是出现在分词那里,因为对了域名做了普通的 term 的分词,所以这样子搜索其实根本不能保证哪个关键字出现的前后次序. 最好最理想的办法就是把输入域名,通过从最后匹配上来,
简单来说就是
输入 iteye.com 那么匹配中,从最后面开始往前匹配. 这样肯定就能保证到域名的匹配了.
但,问题就是 , lucene 或 solr 似乎都没有这样子的匹配方法,前缀匹配倒有一个 prefixQuery 之类的.
然后我也尝试用了 正则匹配之类的 , 还有那个 wildCard 也用了一下,但似乎还不能满足这一个需求.
最后,其实可以反过来想. 直接使用了 prefixQuery 就可以了 , 前提条件就是把那个 domain 那个索引类型改了一下,从之前的 onText 改成 string 类型,同时把输入的域名进行反转,这样就可以使用了
具体如下:
1. 在索引提交索引的过程中, 比如 本来要索引的是 baidu.com 则转换一下,变成 moc.udiab .
转换代码如下:
2. 其次, 每次当用户输入的索引,也进行这一个域名反转的处理. 使用前缀搜索处理则可. 可以完美匹配出域名,二级域名,指定搜索某一个域名之类的操作.如果在 solr 中,如果只要 baidu.com 这一个网站的的话,则可以搜索 domain:moc.udiab* 这样子则可 ,这样的小技巧应用非常实在.
结语: 从上一遍文章到现在已经隔了快1年没写文章了,一直都心里打算着要写点技术文章之类的,很希望一直能深深钻研技术类, 当然是往更底层,更核心的方向去向,比如大数据的hadoop,hbase 中,在现在工作上的应用使用hadoop , hbase 之类,其实越用越感觉自己只是 hadoop 的一个使用者而已,就算优化得非常好,也仅仅是一个高级的使用者而已,因为里面的核心比如 存储形式,并发运算等核心都是别人的, 自己用得再好,也只是一个使用者. 要打破这些,唯有自己学习里面的核心比如算法还有 hdfs 之类的存储形式,能有自己的实现方式才是根本.
相关推荐
资源名称:相关性搜索 利用Solr与Elasticsearch创建智能应用内容简介:《相关性搜索:利用Solr与Elasticsearch创建智能应用》揭开了相关性搜索的神秘面纱,告诉大家如何将 Elasticsearch与 Solr这样的搜索引擎作为可...
本书揭开了相关性搜索的神秘面纱,告诉大家如何将Elasticsearch 或Solr 这样的搜索引擎作为可编程的相关性框架,从而表达业务排名规则。从这本书中你可学会如何结合各种外部数据源、分类方法以及文本分析手段对...
总结,本“Solr 3.5开发应用教程”将引导你从基础安装到实际应用,全面掌握Solr搜索引擎的使用技巧。同时,提供的“教程重要说明.txt”可能包含更多关于实践过程中的注意事项和常见问题的解答,配合“Solr 3.5开发...
除了基础的配置,Solr还支持高级功能,如 faceting(分面搜索),可以实现对搜索结果的多维度分类;Highlighting(高亮显示),可以突出显示查询关键词在文档中的位置;以及Spell Checking(拼写检查),提供纠错...
在3.5版本中,Solr 已经成为一个成熟的技术,广泛应用于网站的全文检索、商品搜索、文档检索等多个场景。本文将深入探讨 Solr 3.5 的配置及其在实际应用中的关键点。 首先,配置 Solr 3.5 包括以下几个主要步骤: ...
Solr基于Apache Lucene,它提供了更高级的功能,如集群、分布式搜索、复制和负载均衡,使得Solr更适合大规模、高并发的搜索应用。 1.2.2 Schema(模式) Schema是Solr的核心配置之一,用于定义索引字段、数据类型...
而Solr适合需要高级搜索功能,对现有分布式功能有较好支持但不那么依赖于扩展性、以及文档相对完善的场景。在实际选择时,应当根据具体的技术需求、团队经验以及产品的成熟度来做出判断。由于两者都是基于Lucene构建...
Solr是基于Lucene库的,提供了一个高效、可扩展的搜索和导航功能,广泛应用于各种企业的数据检索需求。 Solr的核心功能包括文本分析、索引构建、查询处理和结果排序。它的强大之处在于其灵活性,可以通过配置文件...
作为一款开箱即用的搜索服务器,Solr旨在简化复杂的企业级搜索应用的搭建和维护。 一、Solr核心概念与架构 1. **Core**:Solr的核心工作单元称为Core,每个Core包含独立的配置和数据集。Core可以看作是一个独立的...
Solr实现电扇站内搜索Solr实现电扇站内搜索Solr实现电扇站内搜索Solr实现电扇站内搜索
在本篇博文中,我们将探讨基于Apache Solr构建的网站索引架构,这是搜索引擎技术中的一个关键组件。Solr是一个开源、高性能的全文检索服务,它允许开发者为大量数据建立索引,从而实现快速的搜索功能。在"基于solr的...
Lucene本质上是搜索库,不是独立的应用程序,而Solr是。Lucene专注于搜索底层的建设,而Solr专注于企业应用。Lucene不负责支撑搜索服务所必须的管理,而Solr负责。所以说,一句话概括 Solr: Solr是Lucene面向企业...
开源企业搜索引擎SOLR的_应用教程
### Solr 3.5配置及应用知识点详解 #### 一、Solr简介 - **定义**:Apache Solr是一款高性能、开源的搜索服务器。... - **数据模型**:在Solr中,...随着对Solr更深入的理解,用户还可以探索更多高级特性和应用场景。