- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
simple_query_string
有什么区别和 query_string
在 Elasticsearch 中?
哪个更适合搜索?
在 Elasticsearch simple_query_string
文档,它们是写的
Unlike the regular
query_string
query, thesimple_query_string
query will never throw an exception and discards invalid parts of the query.
最佳答案
没有简单的答案。这取决于 :)
一般情况下 query_string
专用于更高级的用途。它有更多选项,但正如您所引用的那样,当发送的查询无法作为一个整体进行解析时,它会引发异常。相反 simple_query_string
选项较少,但不会对无效部分抛出异常。
作为一个例子,看看下面的两个查询:
GET _search
{
"query": {
"query_string": {
"query": "hyperspace AND crops",
"fields": [
"description"
]
}
}
}
GET _search
{
"query": {
"simple_query_string": {
"query": "hyperspace + crops",
"fields": [
"description"
]
}
}
}
GET _search
{
"query": {
"query_string": {
"query": "hyperspace AND crops AND",
"fields": [
"description"
]
}
}
}
GET _search
{
"query": {
"simple_query_string": {
"query": "hyperspace + crops +",
"fields": [
"description"
]
}
}
}
simple_query_string
) 中获得结果。第一个(
query_string
)会抛出这样的东西:
{
"error": {
"root_cause": [
{
"type": "query_shard_exception",
"reason": "Failed to parse query [hyperspace AND crops AND]",
"index_uuid": "FWz0DXnmQhyW5SPU3yj2Tg",
"index": "your_index_name"
}
],
"type": "search_phase_execution_exception",
"reason": "all shards failed",
"phase": "query",
"grouped": true,
"failed_shards": [
...
]
},
"status": 400
}
simple_query_string
.多亏了这一点,最终用户即使在查询中犯了错误,也会在每个查询案例中得到一些结果。
query_string
建议一些更高级的用户使用,他们将接受正确查询语法的培训,以便他们知道为什么在每种特定情况下都没有任何结果。
关于elasticsearch - simple_query_string 和 query_string 哪个更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53076255/
我有以下查询查询 (simple_query_string) 并且确实提出了建议,但在执行任何这些操作之前,我想使用一个术语来过滤数据。 { "query": { "simple_
最近我们发现,由于我们没有在搜索词进入我们的系统时对其进行清理,所以当特殊字符(例如/(正斜杠)等与“query_string”一起使用时,我们会在 Elasticsearch 中偶尔出现解析异常。因
在 elasticsearch 5.6.2 和 5.6.3 (Ubuntu 16.04) 中,这个查询 GET _search { "simple_query_string": {
simple_query_string有什么区别和 query_string在 Elasticsearch 中? 哪个更适合搜索? 在 Elasticsearch simple_query_strin
我将 * 传递到查询中,以使用 simple_query_string 脚本获取索引中的所有字段,但它仅返回空结果。请指导我解决这种情况。形成的查询是: {"query":{"simple_query
我为我的所有文档设置了一个索引: { "mappings" { "book" { "_source": { "enabled": true }, "properti
我的索引中有一个嵌套字段 source 如下所示: "source": [ { "name": "source_c","type": "type_a" },
索引: { "settings": { "index.percolator.map_unmapped_fields_as_text": true, }, "ma
flex 搜寻7.9 我正在通过文本框搜索通过Web UI向用户显示的单个字段。 { match: { body: {
从 Elasticsearch 5.6.8 升级到 6.2.4 后,我注意到 simple_query_string 的行为发生了变化,我似乎无法在重大更改中找到相关记录。如果针对两个版本运行以下命令
我是一名优秀的程序员,十分优秀!