【问题标题】:Building search engine for product search为产品搜索构建搜索引擎
【发布时间】:2014-10-01 07:46:19
【问题描述】:

我们想为在线/离线产品构建一个搜索引擎。我们开始在网上冲浪,开始了解倒排索引、TF/IDF 和其他通用搜索相关算法等技术。我们使用了内置所有上述技术的 lucene,我们的基本搜索平台已经准备就绪。

后来我们意识到通用搜索引擎会返回任何类型的输出。 假设我搜索“black shoes”,搜索字符串输出将包含同时包含黑色和鞋子的输出。所以在输出中很可能有一件黑色衬衫,但相关性较小。

所以我们认为产品分类可能是我们的救星。我们将根据产品所具有的属性对产品进行分类,然后我们还将解析查询字符串以挖掘用户正在寻找的内容并直接匹配它们。我不确定这是否是我们应该遵循的方式。

所以我想知道为利基市场构建搜索引擎通常遵循哪些不同的技术?

【问题讨论】:

    标签: lucene search-engine


    【解决方案1】:

    Lucene 绝对是您可以用来构建搜索引擎的顶级 API 之一。我还是建议你使用Solr.

    Solr 在底层使用 Lucene,但为您提供了许多内置功能和令人惊叹的可视化控制台。

    关于您的问题,正如经常发生的那样,这里不是使用工具的问题,而是您如何使用它。您可以使用 Lucene/Solr 自定义搜索行为以获得所需的结果。

    无论如何,您有两种选择可以单独或一起采用:

    1) 创建一组上下文以供选择。例如,亚马逊搜索让您可以在与产品相关的不同上下文中进行选择(例如“所有部门”、“美容”、“游戏”等)。这个技巧将帮助您缩小产品范围;

    2) 使用带有 slop 1 的 SpanNearQuery 或 PhraseQuery 并通过接近度来提升它们。

    如果索引中的文档是用最适合您的结构创建的,那么前面的选项显然会对您有所帮助。

    【讨论】:

    • 非常感谢您的建议。我一定会阅读 SpanNearQuery 并尝试在我们的应用中实现它。
    猜你喜欢
    • 2021-10-23
    • 1970-01-01
    • 1970-01-01
    • 2011-02-20
    • 1970-01-01
    • 2011-04-29
    • 2013-12-12
    • 2020-04-29
    • 1970-01-01
    相关资源
    最近更新 更多