2 回答
TA贡献1820条经验 获得超10个赞
也许是这样的:
GET index/_search
{
"query": {
"bool": {
"must": [
{
"multi_match": {
"query": "ipsum",
"fields": []
}
},
{
"match": {
"type": "cq:Page"
}
}
]
}
}
}
"fields": [] -> meaning all fields
TA贡献1829条经验 获得超13个赞
它使用matchPhraseQuery而不是 matchQuery 来工作。我的值是“cp:Page”。
在这种情况下,仅当该术语的值与其索引中的值完全相同时,matchQuery 才会返回文档(并且在查询时没有使用分析器)。
另一方面,matchPhraseQuery 也会在查询时使用默认分析器,因此查询中的值在分析器更改后将与索引值相同。
可以按查询、按字段或按索引指定分析器。在索引时,Elasticsearch 将按以下顺序查找分析器:
字段映射中定义的分析器。索引设置中名为 default 的分析器。标准分析仪。在查询时,还有几个层:
全文查询中定义的分析器。 search_analyzer 定义在字段映射中。字段映射中定义的分析器。索引设置中名为default_search的分析器。索引设置中名为 default 的分析器。标准分析仪。
添加回答
举报