- 处理人类语言
- 开始处理各种语言
- 词汇识别
- 归一化词元
- 将单词还原为词根
- 停用词: 性能与精度
- 同义词
- 拼写错误
- 模糊性
- 模糊查询
- 模糊匹配查询
- 模糊性评分
- 语音匹配
模糊匹配查询
match
查询支持开箱即用的模糊匹配:
GET /my_index/my_type/_search
{
"query": {
"match": {
"text": {
"query": "SURPRIZE ME!",
"fuzziness": "AUTO",
"operator": "and"
}
}
}
}
查询字符串首先进行分析,会产生词项
[surprize, me]
,并且每个词项根据指定的
fuzziness
进行模糊化。
同样,
multi_match
查询也支持
fuzziness
,但只有当执行查询时类型是
best_fields
或者
most_fields
:
GET /my_index/my_type/_search
{
"query": {
"multi_match": {
"fields": [ "text", "title" ],
"query": "SURPRIZE ME!",
"fuzziness": "AUTO"
}
}
}
通配符查询
返回包含匹配通配符模式的术语的文档。
通配符运算符是匹配一个或多个字符的占位符。例如,
*
通配符运算符匹配零个或多个字符。您可以将通配符运算符与其他字符组合以创建通配符模式。
示例请求
以下搜索返回
user.id
字段包含以 开头
ki
和结尾的术语的文档
y
。这些匹配条件可以包括
kiy
,
kity
或
kimchy
。
GET /_search
{
"query": {
"wildcard": {
"user.id": {
"value": "ki*y",
"boost": 1.0,
"rewrite": "constant_score"
}
}
}
}
的顶级参数 wildcard
wildcard
<field>
(必需,对象)要搜索的字段。
参数 <field>
<field>
value
(必需,字符串)您希望在提供的
<field>
.
此参数支持两个通配符运算符:
-
, 匹配任何单个字符?
-
, 可以匹配零个或多个字符,包括空字符*
避免以
*
或开始模式
?
。这会增加查找匹配项所需的迭代次数并降低搜索性能。
boost
(可选,浮点数)用于减少或增加查询相关性分数的浮点数 。默认为
1.0
.
您可以使用该
boost
参数来调整包含两个或更多查询的搜索的相关性分数。
Boost 值相对于 的默认值
1.0
。
0
和之间的提升值会
1.0
降低相关性分数。大于 的值会
1.0
增加相关性分数。
rewrite
(可选,字符串)用于重写查询的方法。有关有效值和更多信息,请参阅 rewrite参数。
case_insensitive
[7.10.0]在 7.10.0 中添加。
(可选,布尔值)设置为 true 时,允许模式与索引字段值不区分大小写匹配。默认为 false,这意味着匹配的区分大小写取决于基础字段的映射。
笔记
允许昂贵的查询