POST http://localhost:9200/test2/drug?pretty
{
"title": "I can do this"
}
get test2/drug/_search
{
"query" : {
"match": {
"title": "cancer"
}
}
}
映射为:
{
"test2": {
"mappings": {
"drug": {
"properties": {
"title": {
"type": "string"
}
}
}
}
}
}
运行以上查询将返回文档。我想了解松紧带在幕后做什么?通过查看默认分析器的输出,它不会标记癌症,使其返回“可以”,那么为什么返回带有“可以”一词的文档,又是什么原因导致该文档被返回呢?换句话说,搜索查询“癌症”正在发生什么其他处理。
我是否可以在我的机器上运行一个命令,该命令将清除所有索引和所有内容,因此我的表盘整洁?我执行了删除/ *的操作,但成功了,但仍然匹配了。
测试的问题是,如果您使用的是Sense,则是get
请求。在某种意义上,它应该是GET
(大写字母)。
解释GET
与POST
vs.http方法有关。在实际情况下,Sense实际上将GET
请求转换为HTTP
POST
(鉴于许多浏览器不支持带有请求正文的HTTP
GET请求)。这意味着,即使您进行编写GET
,实际的http请求也是POST
。
由于Sense具有强制将大写字母用于请求方法的自动完成功能,因此在确定是否与请求正文一起使用GET
(而不是小写get
)请求时,将使用相同的大写字母。如果是,那么该请求将转换为POST
一个。如果比较请求方法并确定不是GET,则按原样发送请求,即使用get
方法和正文。由于忽略了主体,因此到达Elasticsearch的对象将test2/drug/_search
基本上是a
match_all
。