基于Elasticsearch搜索平台设计
背景
随着公司业务的高速发展以及数据爆炸式的增长,当前公司各产线都有关于搜索方面的需求,但是以前的搜索服务系统由于架构与业务上的设计,不能很好的满足各个业务线的期望,主要体现下面三个问题:
不能支持对语句级别的搜索,大量业务相关的属性根本无法实现
没有任何搜索相关的指标评价体系
扩展性与维护性特别差
基于现状,对行业内的搜索服务做出充分调研,确认使用ElasticSearch做底层索引存储,同时重新设计现有搜索服务,使其满足业务方对维护性、定制化搜索排序方面的需求。
常用排序算法复杂度和稳定性总结
排序算法
平均时间复杂度
最好情况
最坏情况
空间复杂度
稳定性
冒泡排序
O(n2)
O(n)
O(n2)
O(1)
稳定
选择排序
O(n2)
O(n2)
O(n2)
O(1)
不稳定
插入排序
O(n2)
O(n)
O(n2)
O(1)
稳定
希尔排序
O(nlogn)...
app后端搜索入门
现在人们的网络生活已经离不开搜索了,遇到不懂的问题,想知道的事情,搜索一下,就知道答案。
在app中,最常见的搜索情景就是搜索用户。只有几百,几千的用户量时,可以直接用用like这样的模糊查询,但是,如果数据有几百万,甚至上千万的时候,一次like查询数据库就堵了。