regex - 完整文档的 Elasticsearch 正则表达式不起作用
问题描述
我正在使用 Elasticsearch 来存储句子。我想找到与正则表达式匹配的句子。我为此尝试了 query_string,尽管它没有返回所需的句子。
询问:
{
"_source": "doc.sent",
"query": {
"query_string" : {
"query" : "/food.*table/",
"default_field" : "doc.sent"
}
}
}
例句:
My food is left at the table right now.
解决方案
你不需要正则表达式,但如果你想匹配多个单词或多个模式,你可以使用&
符号
交集 与号“&”以一种它们都必须匹配的方式连接两个模式。对于字符串“aaabbb”:
aaa.+&.+bbb # match aaa&bbb # no match 使用这个特性通常意味着你应该重写你的正则表达式。
使用 INTERSECTION 或 ALL 标志启用。
出于您的目的,查询将如下所示:
{
"_source": "doc.sent",
"query": {
"query_string" : {
"query" : "food&table",
"default_field" : "doc.sent"
}
}
}
或者你也可以使用AND
orOR
运算符
{
"_source": "doc.sent",
"query": {
"query_string" : {
"query" : "food AND table",
"default_field" : "doc.sent"
}
}
}
推荐阅读
- javascript - 在可拖动对象上时如何将光标样式设置为“可移动”
- postgresql - 从 PgQ 读取到 Apache Kafka 的最佳方式是什么?
- r - purrr:: map 和 lag 函数,嵌套数据框的语法
- javascript - 为什么我在谷歌地图上显示标记的脚本不起作用?
- mysql - MySql 将行放入单个 JSON 对象中
- python - 我想设置 cookie 字段和字符集来使用 curl 命令处理汉字
- r - 根据字符串条件将每小时数据折叠为每日数据并创建虚拟变量
- angular - Jasmine:监视由另一个函数调用的导出函数不起作用
- .net - IIS 服务器中的 SSL 证书 (.pfx) 文件问题
- git-config - 是否可以在 .gitconfig 中编写多行别名?