分面搜索:ElasticSearch/Solr还是简单的数据库查询?

Ric*_*ard 1 database search solr elasticsearch

从搜索新手那里原谅这个超级基本问题.

我想实现一个利用分面搜索的网站.例如,它是一个拥有酒店数据库的网站,我想允许用户搜索价格范围内的酒店,游泳池有三星或四星.

显然,我可以使用简单的数据库查询将结果返回给用户.

我应该使用ElasticSearch还是Solr来实现它而不是使用数据库查询?如果是这样,为什么?

Gee*_*Jan 5

是的,你应该使用ES或Solr.理由:主要是性能和轻松改变(思考配置)"刻面类型"的能力.

分面是一个不小的壮举,虽然你可以用RDBMS做到这一点,但要快速完成它需要艰苦的思考.为什么要自己使用Solr/ES(+ Lucene)团队努力优化它的数小时.

至于我提到的"刻面类型":

  1. 也许你想做分级分面.选择价格类别>显示较小的价格类别.如何划分:固定范围,均匀分布等.Solr/ES在配置中提供这些选项.
  2. 也许你用一个带最小/最大手柄的滑块实现价格面?你想在幻灯片时显示nr酒店(直方图/ facetstats在SOlr/ES中)
  3. 虽然你已经面对价格,但也许你仍然想知道价格滑动的最小值和最大值,就好像你没有过滤价格一样.如果您希望能够按比例绘制滑块手柄,则需要这样做.(请参阅我关于SO的问题,考虑从Solr切换到ES的一部分:Elasticsearch:在面对可能时排除过滤器?(例如在Solr中))
  4. 面对星星?如果用户选择那颗星,也许你想要显示每颗星的最佳价格(再次直方图/统计数据)

说真的,甚至不考虑使用RDBMS进行上述操作.你会疯了.

希望有所帮助,是的我熟悉域名:)

其他问题,请问.

  • 你想要做的是连接一个客户端MVC框架,如骨干(或我使用的spine.js).看到这篇文章(加上我的答案),我认为这是一个设置搜索的好过程-page以这种方式> http://stackoverflow.com/questions/7370056/accessibility-and-all-these-javascript-frameworks/7371629#7371629.这没有谈到后端顺便说一下. (2认同)