如何在有/没有SQL的情况下进行汽车搜索,如Autocout24.de?

如何在有/没有SQL的情况下进行汽车搜索,如Autocout24.de?,sql,database-design,data-structures,Sql,Database Design,Data Structures,我对autoscout24.de中搜索引擎的实现感兴趣。这是一个可以出售/购买汽车的平台。每个汽车广告都有可以搜索的属性:品牌、价格、公里数、颜色等(总共有50多个不同的属性) 我对细节搜索特别感兴趣,它的工作原理如下:页面上显示所有可能的属性。在每个属性后面的括号中,如果选择了该属性,将有与新搜索匹配的汽车数量 示例:我将从空搜索标准开始 地产商: 宝马(100.000) 大众汽车(200.000) 福特(150.000) 属性颜色: 黑色(210.000) 银币(50000元) 白色

我对autoscout24.de中搜索引擎的实现感兴趣。这是一个可以出售/购买汽车的平台。每个汽车广告都有可以搜索的属性:品牌、价格、公里数、颜色等(总共有50多个不同的属性)

我对细节搜索特别感兴趣,它的工作原理如下:页面上显示所有可能的属性。在每个属性后面的括号中,如果选择了该属性,将有与新搜索匹配的汽车数量

示例:我将从空搜索标准开始

地产商:

  • 宝马(100.000)
  • 大众汽车(200.000)
  • 福特(150.000)
属性颜色:

  • 黑色(210.000)
  • 银币(50000元)
  • 白色(100.000)
其他属性也是如此

我想知道:

  • 您将如何使用SQL实现这种搜索
  • 您将如何使用内存中的数据结构来实现它
  • 还应支持范围查询(价格从X到Y的所有汽车)
更新:

括号中的数字显示添加搜索条件后的结果数。因此,每次添加/删除属性时,它都会更改

因此,一个简单算法的工作原理如下:

  • 查找具有当前搜索条件的所有车辆(例如,make Ford)
  • 对于每个属性,请执行以下操作:查找与以前的搜索条件(“福特”)和所选属性的搜索条件匹配的所有汽车。将计数写在属性后面的括号中

这个算法很简单,因为它将执行1+N个查询(N=#属性)。没有人愿意这样做;-)

有一个属性表:

+性质

  • 身份证
  • 头衔
  • 价值观
  • 计数
count字段允许您“赚取”一个额外的查询,因此,您可以在添加新车时更新此字段,而不是检查有多少车具有特定的属性

此表中的行示例:

1“颜色”“白色”1000

2“颜色”“黑色”122

3'公里'5000'1233

4'公里'30000'54

对于cars表,为每个属性添加一个字段

+汽车

  • 身份证
  • 颜色
  • 公里
颜色和km字段将保存properties表中属性行的ID

<>编辑:如果你不打算使用MySQL数据库,你可以考虑使用XML文件来包含属性数据。但同样,无论何时添加/删除或更新汽车,都应该更新其
count

<Properties>
 <Property>
  <Type>Color</Type>
  <Value>White</Value>
  <Count>1000</Count>
 </Property>
</Properties>

颜色
白色
1000

我认为这被称为“”。该项目可能值得一看。

它是一个基本代码

  • 为汽车拥有的每个属性创建一个带有一个计数器的结果对象
  • 逐个检查所有车辆,如果车辆与过滤器匹配,则在每个数字中添加一个
…但它爆炸得很快

我想他们是在几台电脑上做这件事的,在它们之间进行数据分解。每台计算机计算5%的数据,并将结果发送到前端计算机,将所有计数相加


有这样的工具:查找“地图还原”、“弹性搜索”、“strom”…

您可以访问此网站的数据库吗?如果没有,你是否打算从网站上刮去大量的数据?他们提供API吗?这是一个假设性问题吗?@难以捉摸:我无法访问该网站的数据库。我也不想把这些数据抹掉。我想建立一个类似的数据库,但有不同的数据(没有汽车)。我添加了一个“更新”部分。查询是非常动态的。如果添加一个属性(和运算符),则所有计数都会更改。您如何高效地查询它?只有在添加/更新/删除汽车时,您才能更新它。将其与人们进入属性页面的次数进行比较,您必须获取所有属性的
计数。