【问题标题】:What's the algorithm for faceted search?分面搜索的算法是什么?
【发布时间】:2012-04-07 23:03:24
【问题描述】:

分面搜索现在很常见,但它的算法是什么,它是如何在大型数据集中如此快速地进行分面搜索的?

我将自己实施分面搜索,欢迎提供任何提示或线索

【问题讨论】:

  • 您能否提供一些关于“分面搜索”究竟是什么意思的附加信息?这可能意味着很多事情。你能给我们举个例子,什么会搜索你的应用程序的用户以及如何搜索?
  • 看看 Solr 在 Lucene 之上实现的分面搜索。他们让服务器管理员设置标志来确定要分面的字段,然后根据该字段中显示的术语构建分面搜索。可能值得研究仿效。

标签: algorithm search full-text-search faceted-search


【解决方案1】:

简而言之:您创建多个索引,例如一个用于文本,一个用于日期,一个用于地理位置,一个用于数字等。当您将文档添加到索引中时,您可以定义如何索引它拥有的每个字段。

检索文档通常涉及从多个索引(半径 100 公里、价格范围为 50-100 的带有“鞋”字样的产品)中交叉结果(文档 ID)。

要将其扩展到庞大的数据集,您通常使用一种称为分片的技术 - 每个服务器都保存 N 个文档的索引数据,然后您将查询一次发送到所有索引服务器。它们各自返回前 X 个结果,您对它们进行排序并获得统一的前 X 个结果。

我希望这是您正在寻找的方向。

【讨论】:

    【解决方案2】:

    在 Google Scholar 中快速搜索“Faceted Search”应该会找到 Endeca 人员的一些研究论文。

    http://scholar.google.com/scholar?q=faceted+search&hl=en&btnG=Search&as_sdt=1%2C47&as_sdtp=on

    【讨论】:

      猜你喜欢
      • 2011-07-16
      • 2014-09-16
      • 2012-02-09
      • 2023-03-31
      • 2011-03-12
      • 2015-03-30
      • 1970-01-01
      • 1970-01-01
      • 2012-11-01
      相关资源
      最近更新 更多