1

我有一个业务案例,我需要检查搜索查询是否与展示业务有关

eg: q="night clubs new york"

我的数据库中有 300 万+条记录,其中包含国家、州城市和地区的列表,并且我有一个业务类别列表。

我要做的就是检查查询中是否有商业类别(夜总会),是否有城市、州或国家/地区的名称(纽约)。所以我正在检查为以下查询重新调整的结果数量。如果我得到 2 numResults 那么这是一个业务查询,然后我查询我的 Solr 索引来搜索业务。

query: places_ss:(night clubs new york) OR categories_ss:(night clubs new york)

速度问题:我应该如何在 SOLR 中保存城市、州和国家的列表以获得最大的搜索速度?

  • 有一个文档 id:places 并在数组 places_ss 中添加不同的城市、州和国家
  • 在数组中的每个文档中有多个具有不同 ID 的文档,其中包含 100,000 个地名。?
  • 有一个或多个带有 place_s 字符串(不是数组)的文档,每个地方用空格分隔,每个空格用下划线分隔,例如:纽约变成 new_york。在查询期间,我将获得纽约夜总会的多种组合

    例如: night night_clubs night_clubs_new night_clubs_new_york clubs_new clubs_new_york new_york york 并查询地点。

为上述地方的文件设置一个单独的核心以提高速度是个好主意吗?

这是一个好的解决方案吗?

4

1 回答 1

0

文件组织: 最好有一个文件方法: - 位置 - 活动 - 其他需要的东西!

location 您应该像这样保存您的位置 Country:state:city:suburb.... 这样您就可以在 usa:new york:new york* of : :new york中搜索

不需要_ 避免,没有必要!

活动 活动应存储在另一个字段中,以确保搜索和速度的精确性。

于 2014-06-03T04:13:15.507 回答