this is water英文原版:·高级搜索引擎功能的问题

来源:百度文库 编辑:高考问答 时间:2024/05/09 09:09:08
我看过一个搜索引擎是可以加空格查询的
比如输入 "你们 我们" 选择and或者or
当选择and后,那么就会查询出记录中包含你们也包含我们的记录
当选择or后,就会查询出包含你们或者包含我们的记录
我要问的就是他是如何区分开输入框中你们和我们这两个词的?用到哪个函数了?

and是当业务逻辑层取到表单字符串后,将中间的空格替换成“%”号来达到包含查询的目的。比如
select * from info where name like "%我们%你们%"

而or是当业务逻辑层取到表单字符串后,对其进行拆分字符串数组,比如在JAVA中,使用string.split(" ");方法就可以根据空格将字符串拆分成数组,然后根据字符串数组的个数来决定需要在SQL中添加几个AND语句,比如:

select * from info where name like "%我们%" and name like "%你们%"

当然,相对应的and和or的业务逻辑要根据你选择处理方式做相应的处理选择

你说的是数据库的查询吗?一般都没有直接可以得出这个的结果的,要经过处理,比如是先分割再合成查询语句。
用SQL中的 or 或 and 也很容易实现这样的查询。
但像百度,google这们的搜索,都会先进行分词处理。那要有一个很大的词库