问题标签 [faceted-search]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
string - 归一化分类术语的准确算法?
我正在开发一个购物比较网站,该项目处于非常先进的阶段。我们每天使用来自各种联盟网络的商家源为 5000 万种产品编制索引。我遇到的大部分问题都已经解决了,包括大部分性能瓶颈。
我的问题是什么:首先,我们将 apache solr 与 drupal 一起使用,但是,这个问题并不特定于 drupal 或 solr,如果您不了解它们,也没关系。
我们收到来自 2000 多个不同商家的产品信息,这些信息一团糟。他们没有特定的模式,每个商家都以他们想要的方式发送提要。我们已经解决了许多与此相关的问题,但仍然存在一个问题。规范化分面浏览功能的分类术语。
假设我的网站上有“Narrow by Brands”浏览方面。现在假设有 100 个商家提供 Microsoft 的产品。现在问题来了。一些商家在数据馈送的“品牌”列中放入“Microsoft”,另一些为“Microsoft, Inc.”,另一些为“Microsoft Corporation”,另一些为“Products from Microsoft”,等等……商家和最坏的情况之间没有特定的模式,有些个体商家太马虎了,在同一个数据源中对同一个品牌有不同的字符串。
我们不希望所有这些不同的品牌出现在导航中。对于手动将导入的品牌映射到“好”品牌表(“Microsoft Corporation”->“Microsoft”、“Products from Microsoft”->“Microsoft”等)的问题,我们有一个手动解决方案。我们在数据库中有大约 10,000 个品牌,这是可行的。问题是当它带有更大的东西时,比如“作者”。当我们将书籍导入系统时,有超过 800,000 位作者,我们遇到了同样的问题,而这不能通过手工映射来解决。问题是一样的:“Tom Mike Apostol”、“Tom M. Apostol”、“Apostol, Tom M.”等等……
有人知道以可接受的准确度(85%-95% 准确度)自动解决这个问题的好方法吗?
谢谢你的帮助!
drupal-6 - Drupal 6 分面搜索
我一直在玩分面搜索和可用的显示样式,并想知道是否有一种方法可以在我的自定义模块中编写自定义显示,并在配置环境时将其公开给显示样式列表。
我使用了视图选项,但视图并不能完全产生我想要的结果。
lucene - Lucene.NET 分面搜索
我正在使用 Lucene.NET 构建多面搜索,而不是使用 Solr。我想获取当前查询中的导航项列表。我只是想确保我指向正确的方向。我有一个想法可行,但我不确定这是否是正确的方法。
我目前的计划是创建所有可用过滤器的层次结构,然后使用此处描述的技术遍历列表以获取每个过滤器的计数,不包括产生零结果的过滤器。听起来不错,还是我错过了什么?
lucene - .NET 站点上的 Solr
我有一个支持 SQL Server 数据库的 ASP.NET 站点。我一直在使用 Lucene.NET 来索引和搜索数据库。我将分面搜索导航添加到结果页面(分面是分层类别树)。我昨天要求确保我使用了正确的刻面技术。到目前为止,我得到的只是使用 Solr 的建议,但 Solr 做了很多我不需要的事情。
我真的很想从任何熟悉 Solr 源代码的人那里知道 Solr 的 facet 处理是否与Bert Willems 在这里描述的有很大不同。基本上,每个方面都有一个 Lucene 过滤器,从中获取位数组,然后计算数组中的设置位。
我在想,既然我的开始是分层的,我应该能够很好地优化它,但我担心我可能严重低估了这种设计对搜索性能的影响。如果 Solr 没有更快,我不会通过使用它来获得任何东西。
database-design - 分面搜索的数据库结构
我正在创建一个电子商务网站,该网站需要一个多面搜索工具,以便客户可以通过与ebuyer.com和Newegg.com相同风格的类别和分类来缩小产品搜索范围(见左侧菜单)。
我最初直接设计了一个类似于 EAV 结构的数据库(我当时不知道这是什么),这最初看起来很理想,因为我可以创建无限的类别、子类别和其他产品分类(即颜色、客户可用于查找特定产品的大小、收件人)。然而,当我开始尝试使用AND
条件创建 SQL 查询时,我意识到普通的简单查询变得更长且编写起来复杂得多。
在花了几个小时阅读了关于 SO 的各种帖子和 Google 上的文章之后,我开始意识到如果我继续使用这种方法将会是一场噩梦。
问题
ebuyer.com和Newegg.com等网站是如何设计分面搜索的?
我是否错过了另一种方法,或者他们只是继续使用 EAV 结构?我希望避免像 Lucene/Solr 这样的企业解决方案。
mysql - 搜索引擎过滤器:: 每个过滤器的预计数结果
我正在建立一个汽车搜索引擎。查看搜索结果时,左侧有过滤器可以使结果更加具体。我希望能够显示为所选搜索设置每个过滤器时存在的结果总和。
例如,过滤器可以是:
制作
阿尔法罗密欧 (500)
宝马 (2330)
....
颜色
黑色 (1000)
白色 (800)
....
我想计算括号中的有效数字而不为此进行数十次选择。知道如何缓存这些数据或为此制作一个特殊的表吗?
请记住,每次添加过滤器时,都必须根据新结果重新计算总和。
您可以在此处查看示例
我认为这很棘手。非常
感谢您的帮助!
迪米特里斯
mysql - 如何获取每个产品属性/过滤器(如 newegg)的总数
如果您访问 newegg.com(只是一个示例),您会注意到在浏览产品时,您可以在左侧边栏中看到每个产品属性旁边的项目数量。
由于某些项目的属性如此之多,产品过滤器的配置如此之多,他们如何如此快速地计算所有这些总数?
solr - Hadoop 创建一个索引并将其添加()到分布式 SOLR ......这可能吗?我应该使用 Nutch 吗?..Cloudera?
我可以使用 MapReduce 框架创建索引并以某种方式将其添加到分布式 Solr 中吗?
我有大量信息(日志文件和文档),这些信息将通过互联网传输并存储在我的数据中心(或亚马逊)中。它需要被我们复制的 Solr 安装解析、索引和最终搜索。
这是我提出的架构:
- 使用 MapReduce 框架(Cloudera、Hadoop、Nutch,甚至DryadLinq)来准备这些文档以进行索引
- 将这些文档索引为 Lucene.NET / Lucene (java) 兼容的文件格式
- 将该文件部署到我的所有 Solr 实例
- 激活该复制索引
如果以上是可能的,我需要选择一个 MapReduce 框架。由于 Cloudera 是供应商支持的,并且有大量未包含在 Hadoop 安装中的补丁,我认为它可能值得一看。
一旦我选择了 MatpReduce 框架,我需要对文档(PDF、DOCx、DOC、OLE 等)进行标记,对它们进行索引,将索引复制到我的 Solr 实例中,并以某种方式“激活”它们以便它们可以在正在运行的实例。我相信这种方法比通过 REST 接口向 Solr 提交文档更好。
我将 .NET 引入图片的原因是因为我们主要是一家 .NET 商店。我们将拥有的唯一 Unix/Java 是 Solr,并且有一个通过 Solrnet 利用 REST 接口的前端。
根据您的经验,这种架构看起来如何?你看到任何问题/问题吗?你能给出什么建议?
我不应该怎么做才能失去分面搜索?在阅读了 Nutch 文档后,我相信它说它不做 faceting,但我可能没有足够的软件背景来理解它在说什么。
solr - 复杂数据的 Solr 模式设置帮助
我正在尝试在 Solr 中设置字段以进行复杂的搜索。
我希望用户能够根据他们在白天和时间段内的营业时间和提供的服务找到组织。
例子:Find all organizations open Monday at 3pm offering childcare service and Spanish speakers.
这些字段是:
我知道我可以使用带有范围查询的数组字段来搜索任何一个字段,但我不确定如何关联相关数据。如果仅在星期三提供托儿服务,我不希望该组织在搜索星期一时出现。
drupal - Drupal:重用分面搜索块
Drupal 中的分面搜索模块为每个新的分面搜索环境(当前搜索、引导搜索、相关等)创建一组块。
如果您要为书籍等创建分面搜索环境,您可以使用基本路径 browse/books
和起始页将其设置为browse/books/results
. 要显示多面搜索块,您需要将块的页面特定可见性设置设置为“仅在列出的页面上显示”,并将实际页面设置为
问题:我想在不同的登录页面上重新使用“引导式搜索”块。登录页面应显示可用搜索词列表 ( sidebar-left
) 并显示页面其余部分的视图。
到目前为止,简单地将不同的路径添加到“仅在列出的页面上显示”的列表中没有任何效果。