学习MVC之租房网站(九)-房源显示和搜索
在上一篇<学习MVC之租房网站(八)- 前台注册和登录>完成了前台用户的注册、登录、重置密码等功能,然后要实现与业务相关的功能,包括房源的显示、检索等。
一 房源显示
房源显示内容较多,涉及到的有House、Attachment、HousePic,处理的信息包括房屋类型、朝向、楼层、装修状态、家具等。
这里显示的房源是通过后台的房源管理维护的,后台添加房源时会上传图片、使用UEditor编辑文本,前台显示房源时也要把图片和富文本显示出来。在前台使用后台上传的图片是个问题;UEditor产生的富文本则要用Raw()方法处理。
前台针对手机界面,用到日期控件的地方不能再使用类似后台的样式,MUI有提供了适用于触摸场景的日期控件mui.DtPicker
二 搜索
搜索方式有两种,给定条件的搜索和模糊匹配搜索。
a) 给定条件的搜索类似电商网站的筛选功能,这儿筛选的是房子的位置、价格区间等,模糊匹配要根据用户在搜索框输入的信息,从小区名称、位置等多个方面查找匹配内容。这两种搜索需求使用EF或者SQL拼接都可以实现,但对于模糊匹配来说,使用ElasticSearch等全文检索工具最适合。
b) ElasticSearch基于Lucene进行了扩展,提供了丰富的查询语言,用于进行快速检索。在ASP.NET下使用ElasticSearch,仍然要配置JDK环境,然后从Nuget安装连接工具PlainElastic.Net。在每次添加、修改、删除房源信息时,除了操作SqlServer,要同步维护ElasticSearch,需要快速检索时就从ElasticSearch中寻找。但ElasticSearch的信息不能修改,只能删除后重新添加。ElasticSearch
注:
课程内容来自如鹏网(www.rupeng.com),专注于大学生就业的在线教育平台;
ASP.NET MVC课程 http://www.rupeng.com/News/9/640.shtml
学习MVC之租房网站(九)-房源显示和搜索的更多相关文章
- 学习MVC之租房网站(七)-房源管理和配图上传
在上一篇<学习MVC之租房网站(六)-用户登录和权限控制>完成了后台用户登录和权限控制功能的开发,接下来要完成的是房源的管理,用户在后台新增.编辑房源信息,供前台用户操作. 一 房源管理 ...
- 学习MVC之租房网站(十)-预约和跟单
在上一篇<学习MVC之租房网站(九)-房源显示和搜索>完成了房源的显示.检索,然后是用户的预约看房,以及后台操作员对预约看房的跟单操作. 预约看房仅有将预约信息保存到对应表的操作,预约表有 ...
- 学习MVC之租房网站(五)-权限、角色、用户管理
在上一篇<学习MVC之租房网站(四)-实现Service层并进行单元测试>中,记录了实现Service层并进行单元测试的过程,接下来该到"正题"-MVC了,也就是UI层 ...
- 学习MVC之租房网站(八)- 前台注册和登录
在上一篇<学习MVC之租房网站(七)-房源管理和配图上传>完成了在后台新增.编辑房源信息以及上传房源配图的功能.到此后台开发便告一段落了,开始实现前台的功能,也是从用户的登录.注册开始. ...
- 学习MVC之租房网站(十二)-缓存和静态页面
在上一篇<学习MVC之租房网站(十一)-定时任务和云存储>学习了Quartz的使用.发邮件,并将通过UEditor上传的图片保存到云存储.在项目的最后,再学习优化网站性能的一些技术:缓存和 ...
- 学习MVC之租房网站(十一)-定时任务和云存储
学习MVC之租房网站(十一)-定时任务和云存储 在上一篇<学习MVC之租房网站(十)-预约和跟单>完成了用户的预约看房以及后台操作员对预约看房的跟单操作.接下来会做定时发邮件的功能,并且用 ...
- 学习MVC之租房网站(二)-框架搭建及准备工作
在上一篇<学习MVC之租房网站(一)-项目概况>中,确定了UI+Service的“双层”架构,并据此建立了项目 接下来要编写Common类库.配置AdminWeb和FrontWeb 一.编 ...
- 学习MVC之租房网站(三)-编写实体类并创建数据库
在上一篇<学习MVC之租房网站(二)-框架搭建及准备工作>中,搭建好了项目框架,并配置了EF.Log4Net和进程外Session.接下来会编写Eneity类并采用CodeFirst的方式 ...
- 学习MVC之租房网站(四)-实现Service层并进行单元测试
在上一篇<学习MVC之租房网站(三)-编写Eneity类并创建数据库>中,记录了编写Eneity类并采用CodeFirst的方式创建数据库的过程,接下来就到了Service层的实现了,并且 ...
随机推荐
- trigger和triggerhandler的区别
1. trigger会触发默认行为2. trigger会触发所有元素的模拟事件,而triggerHandler只触发一次3. trigger可以链式操作,triggerHandler不能4. trig ...
- MySQL---连接器(python如何操作数据库媒介,基于python语言)
MySQL — 连接器 连接器的概念 它们往往是一类Python包,或者是一类已经写好的Python库.这些库提供了我们Python去连接数据库服务器的基本功能. 既然它是一个包,那么我们首先学会 ...
- 重写NSArray与NSDictionary的descriptionWithLocale方法
重写NSArray的descriptionWithLocale方法: NSArray+log.h #import <Foundation/Foundation.h> @interface ...
- python str.format()
python中的字符串格式函数str.format(): #使用str.format()函数 #使用'{}'占位符 print('I\'m {},{}'.format('Hongten','Welco ...
- 介绍三个Android支持库控件:TabLayout+ViewPager+RecyclerView
本文主要介绍如下三个Android支持库控件的配合使用: TabLayout:android.support.design.widget.TabLayout ViewPager:android.sup ...
- MySQL两个最简单的delimiter的使用demo
今天复习MySQL,使用的工具是Navicat for MySQL,写了两个简单的delimiter的demo. 第一个,获取当前时间的年月日时分秒格式的时间: delimiter $$ drop f ...
- Elasticsearch搜索之explain评分分析
Lucene的IndexSearcher提供一个explain方法,能够解释Document的Score是怎么得来的,具体每一部分的得分都可以详细地打印出来.这里用一个中文实例来纯手工验算一遍Luce ...
- TomCat杀进程
有时候当你的tomcat启动时会发现 因为报以下的错误: "Several ports ( 8080, 8009) required by Tomcat v6.0 Server at loc ...
- python之numpy的安装
这是我第一次写博客,我的第一次打算送给python的numpy库的安装指导,这是我看到一位大神的博客后产生的启发,真是控制不住自己,必须得写一下. 第一次安装numpy浪费了我一个下午,结果还没安装好 ...
- 烧录口被初始化为普通IO
烧录口被初始化为普通IO后如果复位端没有的烧录口会导致不能识别烧录器不能下载与调试,因为程序一开始就把端口初始化了,烧录器不能识别,添加复位端口到烧录器(前提是你的烧录器有复位端). 有了复位段之后, ...