- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含 field
视频的索引,其值为 1.flv
。如果我执行以下查询:
"query": {
"query_string": {
"query": "2.flv"
}
}
查询仍然返回所有带有 1.flv 的记录。
谁能指出我正确的解决方案?
这是为 1.flv 返回的示例数据(如您所见,没有任何内容包含 2.flv!)
"hits" : {
"total" : 8,
"max_score" : 0.625,
"hits" : [ {
"_index" : "videos",
"_type" : "comment",
"_id" : "_meta",
"_score" : 0.625,
"fields" : {
"video" : "1.flv",
"body" : "Really?"
}
}, {
"_index" : "videos",
"_type" : "comment",
"_id" : "0fYsYOTHT7O-7P6CVi7l3w",
"_score" : 0.625,
"fields" : {
"video" : "1.flv",
"body" : "fadsfasfas"
}
}, {
"_index" : "videos",
"_type" : "comment",
"_id" : "O9VjgFdmQra6hYxwMdGuTg",
"_score" : 0.48553526,
"fields" : {
"video" : "1.flv",
"body" : "Search is hard. Search should be easy."
}
}, {
"_index" : "videos",
"_type" : "comment",
"_id" : "A6k3FEKKSzKTSAVIT-4EbA",
"_score" : 0.48553526,
"fields" : {
"video" : "1.flv",
"body" : "Really?"
}
}, {
"_index" : "videos",
"_type" : "comment",
"_id" : "eFnnM4PrTSyW6wfxHWdE8A",
"_score" : 0.48553526,
"fields" : {
"video" : "1.flv",
"body" : "Hello!"
}
}, {
"_index" : "videos",
"_type" : "comment",
"_id" : "ZogAiyanQy6ddXA3o7tivg",
"_score" : 0.48553526,
"fields" : {
"video" : "1.flv",
"body" : "dcxvxc"
}
}, {
"_index" : "videos",
"_type" : "comment",
"_id" : "O0HcT7aGTrqKQxF25KsOwQ",
"_score" : 0.37158427,
"fields" : {
"video" : "1.flv",
"body" : "Hello!"
}
}, {
"_index" : "videos",
"_type" : "comment",
"_id" : "l2d53OFITb-etooWEAI0_w",
"_score" : 0.37158427,
"fields" : {
"video" : "1.flv",
"body" : "dasdas"
}
} ]
}
}
最佳答案
您看到的是标准分词器(默认/标准分析器的一部分)的结果,它对句点字符 (.
) 进行分词。参见 this play有关如何分析它的快速示例。
有很多方法可以用 Elasticsearch 完成您想要的,例如更新映射和将 video
字段的分析器更改为例如 keyword
分析器,如上所述,可能使用多字段类型,将字段映射配置为 index: not_analyzed
等,但是一个可能对您足够有效的简单解决方案是确保 AND
正在使用运算符。
默认情况下,query string query使用 OR
运算符:
default_operator
: The default operator used if no explicit operator is specified. For example, with a default operator of OR, the query capital of Hungary is translated to capital OR of OR Hungary, and with default operator of AND, the same query is translated to capital AND of AND Hungary. The default value is OR.
因此,要么明确说明运算符,要么将其设置为默认值。 This play还显示了这两种技术的实际应用(右下 Pane 中的搜索 #1 和搜索 #2 选项卡)。
关于Elasticsearch query_string 完全匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20447087/
我确定这已经被问过无数次了,但我无法让它发挥作用, 我正在尝试用查询字符串重写一个 url,我的 url 是例如: http://example.com/articles/index.php?keyw
如果我要创建这样的查询: "query": { "query_string": { "query": "User:mjohnst", "default_field": "Text"
我在ES 5中具有以下映射的索引 { "test-log": { "mappings": { "record": { "properties": {
我的数据库与 Elasticsearch 同步,以优化我们的搜索结果并更快地请求。 我在查询用户时遇到问题,我想通过查询来查找我的用户,它可以是姓名、电话、IP、... 我的实际查询是 query_s
这是我的测试: 使用比赛 {“query”:{“bool”:{“must”:[{“match”:{“name”:{“query”:“ka”}}}},{“term”:{“kind”:“k1 “}}]}}
我在ElasticSearch(我正在使用1.6版)应用程序中有以下查询: { "query":{ "span_multi":{ "match":{
我正在尝试在 Elasticsearch 中使用日期数学进行日期范围查询,但它没有返回任何结果: `query: { bool: { must: { q
我有一个页面显示我的数据库中的数据。在用户看到数据之前,他们有几个选择框,因此他们可以选择以多种不同方式过滤数据,例如选择显示特定时间段内的数据。当我使用 get 方法时,url 看起来类似于下面的内
我有一个包含 field 视频的索引,其值为 1.flv。如果我执行以下查询: "query": { "query_string": { "query": "2.flv"
我正在使用 ElasticSearch (2.4) 和官方 Python 客户端执行简单查询。我的代码: from elasticsearch import Elasticsearch es_clie
当我将表单数据发布到我的服务器时,我的 fastcgi 应用程序能够从 nginx 读取除 QUERY_STRING 之外的所有参数。查看 CONTENT_LENGTH 给出了正确的字符串长度,我的浏
关于 SO 的第一个问题! 我在 apache 2.2.22 上运行 PHP 5.3.10。我只是这样做: Apache 的 error.log 中的输出如下: Array ( [HTTP_
我有一个关于 .htaccess 和 QUERY_STRING 的问题。 我尝试使用我的 htaccess 重定向一个 URL,如下所示: http://mydomain.tld/out/http%3
您好,我有一个奇怪的问题:我的任务是将 WP 页面 (page_id=2) 重定向到同一域上的页面 (about),但是当我使用字符串重定向时: RewriteEngine On RewriteCon
我在这里遇到一个奇怪的问题。我正在将一个(工作)站点移动到一个我无法直接访问的新 apache 服务器(我必须通过两个人才能完成工作)。 该站点使用名为 adframe 的 perl 脚本来解析 ht
假设我有一个索引,并使用以下语句添加了一些文档: POST test/item/_bulk {"id": 1, "text": "one two"} {"id": 2, "text": "one tw
在我的Elasticsearch中,我有一个像这样的文档: "field_4" : [ "ip_address", "127.0.0
我需要的是,elastic 应该在 中搜索多个字段并按字段优先级返回数据。 例如:对于搜索字符串 obil hon , elastic 应该在 fields[title, description, m
我试图得到一个大于 X 且字段等于 Y 的结果。我试过这个: { "sort": { "datapublicacao": "desc" }, "query": {
我想从 query_string 中读取数据。 例如: username=kramsp&password=overfloww123 我想从查询字符串中读取值 query= username=[data
我是一名优秀的程序员,十分优秀!