对我而言,搜索此产品数据库的最佳方法是什么?

用户1977591

我在一家电子商务公司工作,最近我们启动了一个新网站。我负责创建搜索算法。

我们正在使用SQL Server数据库。我们正在使用“标签”将产品与某些产品关键字相关联。我不想使用我们的任何实际信息,所以我将用其他名称替换数据的实际含义。

有一个Product表,一个Tags表和一个ProductTags将产品与标签关联的表。一个Tag可以有很多产品,反之亦然。

Tag 表有:

int TagId
varchar TagName

Product 表有:

Name
ProductId
Price

ProductTags 已:

TagId
ProductId
TagName
ProductName

现在,我将搜索查询拆分为查询中的空格,并找到适用于每个字符串的所有“标记”。

查询示例如下:“ Red fish M60”。

在对查询中的空格进行分割之后,我从查询中的每个字符串中获取了一个标签列表。以下是所有“标签”。

字符串Red返回:

[Red]

鱼会返回:

[Fish_Male]
[Fish_Female]
[Fish_North_America]

M60返回:

[M60_connection]
[M60_secure]

该搜索的热门搜索可能是一些名称如下的产品

'Red Male Fish Secure'
'Red Female Fish Secure'
'Red Male fish North america connection'

然后下面那些将是不太相关的产品,例如

'red male fish farmed'
'black female fish secure'

然后低于该值,则相关性较低的结果将仅与一个标记匹配,例如

'red crab'

或者

'black male fish'

希望对您有所帮助。

所以我的问题是,对我来说,浏览这些标签并在顶部返回最相关的产品,同时又不丢失任何产品的最佳方式是什么(最快,最有效?)。

对我来说,获取这些标签的所有可能排列并返回每个排列的乘积是否可行?(似乎很多)以及为每个单独的Tag退货,例如最后。

例如,匹配三个“标签”的产品将位于搜索结果的顶部,而仅匹配一个“标签”的产品将位于搜索结果的顶部。用户可以搜索任意n个标签,因为有很多可用的标签。我记下的只是一个简单的例子。让我知道是否没有任何意义。

谢谢

shawnt00

这是一个开始。但是我不知道仅根据标签命中数进行匹配是否足以满足您的排序要求。

select p.ProductId, count(*) as Relevance
from Product as p inner join ProductTags as pt on pt.ProductId = p.ProductId
where pt.TagId in (
    select TagId from Tags where TagName in (...)
)
group by p.ProductId
order by Relevance desc

顺便说一句,未将ProductName和TagName放入ProductTags表中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

构造此模型/数据库关联的最佳方法是什么

来自分类Dev

构造此模型/数据库关联的最佳方法是什么

来自分类Dev

标准化此数据库的最佳方法是什么?

来自分类Dev

从数据库获取数据的最佳方法是什么?

来自分类Dev

构造数据库表的最佳方法是什么?

来自分类Dev

从数据库生成网站的最佳方法是什么

来自分类Dev

轮询数据库时的最佳方法是什么?

来自分类Dev

优化海量 CouchDB 数据库的最佳方法是什么?

来自分类Dev

备份sqlite数据库的最佳方法是什么?

来自分类Dev

将由多个产品组成的订单插入SQL数据库的最佳实践是什么?

来自分类Dev

如何设计医疗产品数据库

来自分类Dev

将R数据帧写入SQL Server数据库的最佳方法是什么

来自分类Dev

在多个站点之间共享数据库数据的最佳方法是什么?

来自分类Dev

首次启动时填写数据库核心数据的最佳方法是什么

来自分类Dev

PDO:将数据插入数据库后获取结果的最佳方法是什么

来自分类Dev

在数据库中组织每日用户数据的最佳方法是什么?

来自分类Dev

通过API对未排序和过滤的数据库数据进行分页的最佳方法是什么?

来自分类Dev

重构数据库及其数据的最佳方法是什么?(Laravel 5.2)

来自分类Dev

在Android上创建新数据库之前检查现有数据库的最佳方法是什么

来自分类Dev

参数有多安全?完全保护数据库的最佳方法是什么?

来自分类Dev

用php连接数据库的最佳方法是什么?

来自分类Dev

在MYSQL数据库中重新启动服务时保留时间的最佳方法是什么

来自分类Dev

匹配数据库中10000个以上不同元素的最佳方法是什么?

来自分类Dev

将现有数据库附加到sql localdb的最佳方法是什么?

来自分类Dev

从特定数据库读取所有记录并打印它们的最佳方法是什么?

来自分类Dev

使用MVC 4和Entity Framework 6访问大型数据库的最佳方法是什么

来自分类Dev

将连接字符串保存在数据库中的最佳方法是什么?

来自分类Dev

在数据库中表示1:1关系的最佳方法是什么

来自分类Dev

通过Web服务公开SQL Server数据库的最佳方法是什么

Related 相关文章

  1. 1

    构造此模型/数据库关联的最佳方法是什么

  2. 2

    构造此模型/数据库关联的最佳方法是什么

  3. 3

    标准化此数据库的最佳方法是什么?

  4. 4

    从数据库获取数据的最佳方法是什么?

  5. 5

    构造数据库表的最佳方法是什么?

  6. 6

    从数据库生成网站的最佳方法是什么

  7. 7

    轮询数据库时的最佳方法是什么?

  8. 8

    优化海量 CouchDB 数据库的最佳方法是什么?

  9. 9

    备份sqlite数据库的最佳方法是什么?

  10. 10

    将由多个产品组成的订单插入SQL数据库的最佳实践是什么?

  11. 11

    如何设计医疗产品数据库

  12. 12

    将R数据帧写入SQL Server数据库的最佳方法是什么

  13. 13

    在多个站点之间共享数据库数据的最佳方法是什么?

  14. 14

    首次启动时填写数据库核心数据的最佳方法是什么

  15. 15

    PDO:将数据插入数据库后获取结果的最佳方法是什么

  16. 16

    在数据库中组织每日用户数据的最佳方法是什么?

  17. 17

    通过API对未排序和过滤的数据库数据进行分页的最佳方法是什么?

  18. 18

    重构数据库及其数据的最佳方法是什么?(Laravel 5.2)

  19. 19

    在Android上创建新数据库之前检查现有数据库的最佳方法是什么

  20. 20

    参数有多安全?完全保护数据库的最佳方法是什么?

  21. 21

    用php连接数据库的最佳方法是什么?

  22. 22

    在MYSQL数据库中重新启动服务时保留时间的最佳方法是什么

  23. 23

    匹配数据库中10000个以上不同元素的最佳方法是什么?

  24. 24

    将现有数据库附加到sql localdb的最佳方法是什么?

  25. 25

    从特定数据库读取所有记录并打印它们的最佳方法是什么?

  26. 26

    使用MVC 4和Entity Framework 6访问大型数据库的最佳方法是什么

  27. 27

    将连接字符串保存在数据库中的最佳方法是什么?

  28. 28

    在数据库中表示1:1关系的最佳方法是什么

  29. 29

    通过Web服务公开SQL Server数据库的最佳方法是什么

热门标签

归档