我对Solr比较新,需要帮助来决定它是否是我的任务的正确工具(如果是,应该如何使用它)。Solr是否可以(或明智)用于预订系统?
我有一个用例,其中有一些实体具有多种资源类型,并且用户需要找到具有足够可用资源的实体。为了让它不那么抽象,可以说有几家汽车租赁公司,以及几种汽车类型(SUV,微型客车,卡车......);我们追踪每个公司/车型/每日组合的可用车辆数量。用户想要租用一定数量的汽车,并且我们需要找出哪些公司可以满足这一要求。
还有其他方面的搜索,为此Solr似乎是一个很好的匹配(每个实体都有一些属性,认为公司的位置,价格,是否存在绿色租赁政策等,以及那些需要搜索,范围过滤器和分面搜索,并根据用户反馈评分进行排序),所以如果资源分配方面可能被锁定到Solr中,那将会很不错。那可能吗?出于某种原因,这是一个坏主意吗?你能否推荐一款更适合这项任务的工具?
浏览Solr的文档后,我想出了这个方案:
- 该公司的文件
- 每一天/车式组合持有的数量动态场给定类型的免费汽车,在该公司的给定日期
- 条件将是一个巨大的布尔表达式,由术语组成,如
field_<car_type>_<day>:[<required_number> TO *]
我不确定它有以下几个原因:
- 它需要成千上万的领域 - 这可能会导致性能问题?
- 据我所知,Solr将范围查询拆分为多个相等检查或一起进行编辑,因此查询最终会产生数千个术语 - 这又可能导致性能问题?
- 每次用户进行预订时,字段值都会发生变化 - 据我所知,这会强制重新索引,这很慢,与上述问题相同。
我希望如何处理这个问题(例如,一些其他搜索工具来使用,或如何Solr的可能与做了预约检查一些自定义代码交互)的任何指针。
难道你不能在大部分工作中使用良好的旧SQL,并且对Solr索引进行了微调以进行搜索,可以将字段合并在一起,等等。您应该能够使用http://docs.lucidworks从SQL导入数据。com/display/solr /上传+ Structured + Data + Store + Data + with + the + Data + Import + Handler – rcomblen 2013-03-18 09:51:09
@rcomblen我可以使用SQL来检查可用性,但我宁愿不对每个搜索请求运行复杂的SQL查询。我没有看到的是如何将其与Solr集成。我需要运行SQL查询来获取具有足够资源的公司列表,然后将该列表提供给Solr(我不知道如何执行此操作),或先运行Solr搜索,然后筛选出不可用使用SQL的汽车(这会搅乱Solr数据,如分页和面数)。乍一看,您的链接似乎是从SQL导入文档,而不是导入每个查询过滤器的结果。 – Tgr 2013-03-18 10:49:49
一个类似的问题:[SOLR旅游网站:日期查询](http://stackoverflow.com/questions/9118177/solr-travel-site-on-date-queries) – Tgr 2013-03-19 15:30:01