`
poson
  • 浏览: 361291 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

深入搜索引擎--查询(Query)

阅读更多
1.Query的数据分析
   Query即用户在搜索引擎输入查询条件。在通用搜索引擎中,一般是指输入的关键词。而在各类行业或者垂直搜索引擎,还可以输入类目,如优酷网站中可以选择“电影”、“电视剧”这样的类目。在电子商务网站中,各种产品品牌、型号、款式、价格等也是常见的查询条件。
    要分析query中每个term的内容,分词是必不可少的工具。分词算法从最简单的最大正向、最大反向分词算法,到复杂的隐马尔科夫、CRF模型。CRF模型是一种序列标注的机器学习方法。分词算法最关键的是如何得到足够的标注准确的语料库,足够的训练语料是模型成功的基础条件。
    Query按照PV从高到低排序之后。横坐标为query编号,纵坐标是query的PV。从下图可以明显看出,query的PV分布是一个长尾分布。


   每种搜索引擎的query 都有自己的特点。根据query的特点来设计自己的算法和相应产品是非常必要的。例如:百度有很多查询“从A到B怎么走”,“××怎么样”。相信百度正是研究了这些查询,才力推百度“贴吧”和“知道”,“百科”等产品的。通用搜索引擎和电子商务网站的query区别一定很大。例如joyo当当一定有大量书籍名称的查询。而在电子商务网站,有大量类目+属性的查询方式。如何组合的输入条件,准确分析用户意图,保证搜索引擎结果的召回率和准确率是一个挑战。

20-80定律:query 和cache
    我们发现20%的top query,占据了80%的PV流量。如果解决了这20%的query的分析和排序问题,我们就解决了绝大多数流量的问题。
    针对20%的query,我们可以优化搜索引擎的索引结构,尽量直接返回用户需要的信息。在query分析的模块,我们可以存储query的分词、词性标注以及query分类等结果。总之高效利用内存,用内存换取性能的极大提升。


query的分类和“框计算”
   query分类是目前通用搜索引擎必须解决的问题。当你在百度或者google上面输入“××市天气”,会显示天气状态图片、温度等;输入“中石油”直接显示出中石油的股价;输入“航班”直接从航班起点和终点的选择。这也是百度所谓的“框计算”,也就是直接在搜索框完成解析,直达具体的应用。
   如何做分类呢?
   假设搜索引擎已经对网页分类,那么统计每个query下点击的页面分类,把页面类别的概率按照从高到低排列,也就是query的分类。也就可以知道这个query的分类。但是这种只能用在当query的点击数量足够的时候。
   另外一种办法是通过页面分类,用贝叶斯的方法,反推每个query可能属于那些类别。

query的导航
   query的分类其实是导航的一个基本条件。只有当你对query的分类准确,对query中每个term的词性理解准确的时候,导航才真正开始。
    在电子商务网站,如Amazon、京东等网站。准确的导航是非常必要的。
    而准确的导航是第一步。根据用户输入,在导航中体现相关热门推荐,或者个性化推荐,是对导航的更进一步的要求。
    在淘宝搜索产品上,当用户输入关键词,会自动提示相应的类目和属性,并且把热门的类目属性展示在前面,而把相对冷门的类目和属性折叠起来。最大利用网页有限的展示空间。


query suggestiong
   关键词推荐见 http://poson.iteye.com/admin/blogs/1441075

query与个性化
   说到个性化,必然涉及到对用户数据的收集。根据用户的行为或者设置,分析用户的年龄、性别、偏好等。同样是搜索“咖啡馆”,你在北京和上海搜索得到结果可能差异很大。

    而这些分析数据来源于对每个用户在搜索引擎的行为日志。搜索引擎都会分析每个用户的搜索和点击等行为。存储的时候存在在分布式key-value内存数据库中。

    用户行为不仅仅对个别用户本身有用。大量用户的行为日志,被广泛用于推荐系统的数据挖掘。例如用户在当当joyo上面购买的书籍,就来自于大量用户的购买和浏览记录。推荐系统从常见的关联规则分析,已经进化到各种复杂的图关系分析算法。

  • 大小: 12.5 KB
分享到:
评论

相关推荐

    深入搜索引擎--海量信息的压缩、索引和查询

    《深入搜索引擎:海量信息的压缩、索引和查询》是斯坦福大学信息检索和挖掘课程的首选教材之一,并已成为全球主要大学信息检索的主要教材。《深入搜索引擎:海量信息的压缩、索引和查询》理论和实践并重,深入浅出地给...

    搜索引擎--原理、技术与系统

    5. **查询处理(Query Processing)**:当用户输入查询时,搜索引擎会解析查询语句,然后在索引中查找匹配的网页。 6. **排序与展示(Ranking & Display)**:搜索引擎根据一套复杂的算法对匹配结果进行排序,通常...

    开发自己的搜索引擎--Lucene+Heritrix.zip

    在IT领域,构建一个搜索引擎是一项复杂而有趣的技术挑战。在这个项目中,我们将使用Apache Lucene和Heritrix这两个开源工具来开发我们自己的搜索引擎。Apache Lucene是一个强大的全文搜索引擎库,而Heritrix则是一个...

    人工智能-项目实践-搜索引擎-基于Boost库的简易搜索引擎

    通过这个项目,你不仅能深入理解搜索引擎的工作流程,还能熟悉Boost库的使用,提高C++编程能力。同时,对JavaScript的掌握也能让你更好地理解和设计用户友好的Web应用程序。这个实践项目将理论与实践相结合,是学习...

    搜索引擎 - 附源代码

    本项目基于Java技术,旨在深入理解搜索引擎的工作原理,并实际动手构建一个简易的搜索引擎系统。通过学习和实践,我们可以掌握信息检索的核心概念,包括爬虫、索引构建、查询处理和结果排序等关键步骤。 ### 一、...

    这就是搜索引擎-核心技术详解-清晰完整版

    查询处理(Query Processing)是搜索引擎处理用户输入查询的方式,包括查询词的分词、同义词扩展、查询意图识别、查询改写等步骤。分词主要是针对中文等没有空格分隔的语言,将用户输入的一串字符切分为可索引的词...

    搜索引擎-原理、技术与系统

    3. **查询处理(Query Processing)**:用户输入查询后,搜索引擎会进行查询解析,识别用户的意图,并在索引中查找相关文档。这一阶段可能涉及关键词匹配、同义词扩展、拼写纠正等技术。 4. **排序(Ranking)**:...

    人工智能-项目实践-搜索引擎-简易的博客搜索引擎后续有时间优化

    通过机器学习和深度学习算法,搜索引擎能够理解用户的查询意图,提供更精准的搜索结果。例如,语义分析可以识别关键词背后的真正含义,而推荐系统则可以根据用户的搜索历史和偏好提供个性化结果。 二、搜索引擎的...

    搜索引擎-java

    在这个主题下,我们将深入探讨Java在搜索引擎开发中的核心概念、技术栈以及实际应用。 一、搜索引擎基础 搜索引擎的主要功能是收集、存储、索引和检索互联网上的信息。其工作流程通常包括爬虫(Crawler)、索引...

    搜索引擎-原理、技术和系统

    然后,查询处理(Query Processing)是搜索引擎的关键环节。用户输入的查询会被解析、扩展,可能涉及同义词处理、拼写纠错等。搜索引擎会使用查询分析技术优化查询,以提高匹配度。接下来,搜索引擎会基于索引执行...

    《开发自己的搜索引擎-Lucene 2.0 Heritrix》cd(全)(下载地址)

    根据提供的文件信息,我们可以深入探讨与“开发自己的搜索引擎-Lucene 2.0 Heritrix”相关的知识点,主要包括Lucene 2.0和Heritrix的基本概念、特点以及如何利用它们来构建一个简单的搜索引擎。 ### 一、Lucene 2.0...

    人工智能-搜索引擎-面向时间敏感对象的垂直搜索引擎关键技术研究吴羽.pdf

    针对传统搜索引擎的被动爬取模式导致用户查询与结果返回之间存在长时间延迟的问题,论文提出了基于语义的QTC技术。这种技术利用领域知识,将用户的查询转化为潜在目标结果的网站请求参数,从而实现对当前用户查询的...

    match-query-parser,在solr中使用不同的查询时间分析器搜索单个字段.zip

    Solr,一个强大的开源全文搜索引擎,提供了高度可配置和可扩展的特性,使得它成为企业级搜索应用的理想选择。在Solr中,查询解析是搜索过程中的关键环节,它决定了如何将用户的输入转换为对索引的精确查询。这篇博文...

    搜索引擎on-model-for-networ开发笔记

    3. **查询处理(Query Processing)**:用户输入查询后,搜索引擎解析查询语句,匹配索引,生成候选结果列表。 4. **排序(Ranking)**:对候选结果进行相关性评分,根据评分排序,返回给用户最相关的搜索结果。 5...

    Python库 | inspire-query-parser-6.0.6.tar.gz

    `inspire-query-parser` 是一个Python库,主要用途是解析查询语句,特别是与科学文献检索相关的查询。在6.0.6版本中,它提供了一套工具来处理和理解复杂的查询表达式,使得开发者能够更有效地处理用户输入的搜索条件...

    wiser:自制搜索引擎-wiser源代码

    这个项目允许用户自行构建和定制搜索引擎,提供了从抓取网页到索引、查询处理等一系列功能的源代码。通过学习和理解Wiser的源代码,开发者可以深入了解搜索引擎的工作原理,并根据需求进行定制化开发。 1. **搜索...

    基于python的搜索引擎设计与实现

    本项目"基于Python的搜索引擎设计与实现"聚焦于利用Python技术来创建一个功能完备的搜索系统,涵盖从数据抓取、预处理到索引建立、查询处理等多个关键步骤。 1. **数据抓取**:搜索引擎的第一步是获取网页数据。...

Global site tag (gtag.js) - Google Analytics