搜索功能

shuaigelove 2011-04-19 04:15:31
模仿下珍爱网的 那个高级搜索功能。

链接

这么多参数条件。该怎么做 性能会好些?

只能散100分...对不住了各位!
...全文
121 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
SeanDing1989 2011-04-21
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 tao145 的回复:]
引用 6 楼 tao145 的回复:
感觉没什么好弄得。
将条件拼接起来即可

C# code

string commandText="select ,,, from tablename where 1=1 ";
if(condition1!=""){
commandText+="and column1 = @condition1";
}
if(condition2!="")……
[/Quote]

就是这俩。。。
zhyb0807508205 2011-04-21
  • 打赏
  • 举报
回复
楼主有兴趣可以研究一下Lucene
IT0329 2011-04-21
  • 打赏
  • 举报
回复
多个条件吧,但是说的总是比做的容易!
消失的尘芥 2011-04-21
  • 打赏
  • 举报
回复
建立全文索引

sql server可实现全文检索
EXEC sp_fulltext_table
DotLucene的效率非常高,索引方式属于"倒排索引"


#region 索引
// Press ButtonSearch on enter
Page.RegisterHiddenField("__EVENTTARGET", "btnIndex");
if (!IsPostBack)
{
if (this.Query != null)
{
search();
DataBind();
table = groupPurchaseItem.GetGroupPurchaseIndex("%" + txtIndex.Text.Trim() + "%");
Pagereturn();
Indexer.IntranetIndexer indexer = new Indexer.IntranetIndexer(Server.MapPath("index"));
indexer.AddDirectory(new DirectoryInfo(Server.MapPath("1.4")), "*.*");//添加索引数据文件
indexer.Close();
}
}..........
#endregion

wmc1103 2011-04-21
  • 打赏
  • 举报
回复
那算不上高级搜索,条件并不多,用SQL语句拼接便可实现,要是网站数据量比较大请注意性能问题,还要注意防sql注入问题。对于数据量大的可以适当用缓存,进行预加载处理。
gongsun 2011-04-21
  • 打赏
  • 举报
回复
大家都知道要去 拼接sql

但如何从 数据库开始设计, 如何加索引,

如何根据 各种行业 类别去设计查询服务才是最关键的。
gongsun 2011-04-21
  • 打赏
  • 举报
回复
大数据量和类别 就要考虑设计。

把搜索分类:

搜索模块的类别表, 搜索包含的字段表, 搜索中使用的where条件表。

在客户端 根据不同的选项, $.ajax传递不同的参数id, 在数据服务端 根据不同的参数去拼接不同的sql

然后 执行分页存储过程 查询数据,返回xml类型数据。 客户端在用js对xml进行操作。
myhope88 2011-04-21
  • 打赏
  • 举报
回复
拼接条件而已吧
ajq1989 2011-04-19
  • 打赏
  • 举报
回复
拼接where条件
子夜__ 2011-04-19
  • 打赏
  • 举报
回复
拼接where条件就可以了
存储过程一个参数

CREATE PROCEDURE ProcT_BOOKSearch_BookInfo
@WhereStr varchar(50)
AS
exec(' SELECT * FROM T_BOOK where ' + @WhereStr)
GO


勾选一个条件 where 后面加一个字段

where a=xx and b=yy and c=ss
wanglik 2011-04-19
  • 打赏
  • 举报
回复
sql语句,数据库要设计好
shuaigelove 2011-04-19
  • 打赏
  • 举报
回复
来人啊!~~~
  • 打赏
  • 举报
回复
添加索引,拼装字符串效率不是很好。
笑道江湖情 2011-04-19
  • 打赏
  • 举报
回复

是 打错了
笑道江湖情 2011-04-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 tao145 的回复:]
感觉没什么好弄得。
将条件拼接起来即可

C# code

string commandText="select ,,, from tablename where 1=1 ";
if(condition1!=""){
commandText+="and column1 = @condition1";
}
if(condition2!=""){
commandTe……
[/Quote]
晕死~~ 到错了。
-------------------
尽量用到索引列, 默认给定日期范围。 比如值查询今年的记录。。。 或者其它条件范围,减小要筛选的结果集。
笑道江湖情 2011-04-19
  • 打赏
  • 举报
回复
感觉没什么好弄得。
将条件拼接起来即可

string commandText="select ,,, from tablename where 1=1 ";
if(condition1!=""){
commandText+="and column1 = @condition1";
}
if(condition2!=""){
commandText+="and column2 = @condition2";
}




尽量用到索引列, 默认给定日期访问。
村长_乐 2011-04-19
  • 打赏
  • 举报
回复
我一直用普通的方法,还有精简方法?关注!
insus 2011-04-19
  • 打赏
  • 举报
回复
qq346127416 2011-04-19
  • 打赏
  • 举报
回复
主要就是根据条件拼sql语句

如果写了这个条件 加上 " and name like '%珍爱%' "
以此类推
tiger_dxc 2011-04-19
  • 打赏
  • 举报
回复
跟程序的关系不是很大吧
加载更多回复(1)

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧