elasticsearch - elasticsearch中query_string中的转义属性是什么
问题描述
我在 elasticsearch 的 query_string 中使用通配符时遇到问题。当值为“true”时,我无法在 query_string 中找到“escape”属性的文档,但当它为“false”时,结果为零。
{
"query_string": {
"query": "*Serial\\+*",
"fields": [
"info.name^1.0"
],
"type": "best_fields",
"allow_leading_wildcard": true,
"analyze_wildcard": true,
"escape": true,
"auto_generate_synonyms_phrase_query": true,
"fuzzy_transpositions": true,
"boost": 1.0
}
}
任何人都可以解释“逃生”属性吗?
解决方案
奇怪的是它没有记录,但查看源代码我们可以看到:
如果“escape”为“true”,代码调用 org.apache.lucene.queryparser.classic.QueryParser.escape
在查询字符串中,函数本身记录为
返回一个字符串,其中 QueryParser 期望转义的那些字符由前面的 \ 转义。
所以看起来这个标志只是用来为你自动转义字符,所以你不必手动转义它们
推荐阅读
- jquery - 容器的 jquery 选择器和除指定的所有子元素
- java - 单击按钮后将圆形对象添加到窗格(JAVA FX)
- c++ - 如何使用 OpenCV C++ 检测图像中有多少楼梯
- c# - 将 Datagridview 导出到 XML 文件 C#
- reactjs - React 如何使validationSchema 可重用
- google-sheets - 跨多列过滤工作表
- java - Java匹配两个没有最后一个字符的字符串
- android - Android WebView 与其他视图重叠
- apache-spark - 气流操作员使用 gcloud beta dataproc 命令
- python - 将两列相加,计算 MapReduce 中的最大值、最小值和平均值