本文环境基于上一节。
and搜索
两种用法:apple AND banana+apple +banana
【+是一元操作符,要求求后面的查询部分必需在文档中出现。AND是二元操作符,要求其左右两端的查询部分必需同时出现。交集】
示例:
OR搜索
两种用法:apple bananaapple OR banana
【Solr默认查询词之间是OR运算,无需指定参数。OR是二元运算符,要求左右两端的查询词至少出现一个。并集】
示例:
排除词项
两种用法:apple banana -pieapple banana NOT pie
【在匹配apple和banana的文档中删除包含pie的文档】
示例:
如果我不包含look
短语
用法:可以使用其他运算符,仅仅把单个词换成短语
示例:
组合表达式
终极奥义!!你可以胡乱组合成别人看不懂的查询,提升你的逼格!!!apple AND (apricot OR (banana NOT banana-skin))(+(red blue -green) +(white yellow -(+pink -black)))
模糊匹配-通配符
【*】匹配多个字符【?】匹配一个字符
例如:
【注意:虽然通配符功能强大,但是使用不当会花销巨大。!!在通配符之前指定的字符越多,查询速度越快(lov*)!!执行首位通配符会花销巨大(*ing)!!】
另外,通配符只适用于单个查询词,不适合短语!!
模糊匹配-区间
例如:查询8到21岁的人age:[8 TO 21]
示例:
模糊匹配-编辑距离搜索
这一部分对用户输入的文本进行细微修正。
Solr使用~来表示模糊编辑距离搜索。查询rea~匹配reason,mean等。指定编辑距离:rea~1 匹配1个以内的编辑距离rea~2 匹配2的以内的编辑距离,这是默认的rea~N 匹配N个以内的编辑距离
示例:我故意把reason写错
模糊匹配-临近距离搜索
查询:"apple banana"~1 apple和banana之间最多间隔1个词查询:"apple banana"~2 apple和banana之间最多间隔2个词查询:"apple banana"~N apple和banana之间最多间隔N个词
示例: