java - 如何使用 RESTHightLevelCient 执行包含多个字符串的搜索
问题描述
我有一个包含多个字符串的字段,如何使用 RESTHightLevelCient 编写搜索查询。另外,我给出的搜索字符串只是一个部分字符串。
添加更多细节。
我正在尝试实现一些我有多个列但只有一个搜索字符串的东西。我的搜索字符串可以是不同列的组合;当字符串只是来自不同列的部分单词的组合时,我的搜索也应该起作用。
我正在尝试一种解决方案来实现此功能,方法是使用一个列,该列是所有其他可搜索列的空格分隔连接,按它们可以出现在搜索中的顺序排列。
因此,如果我有 4 列,书名、作者、价格和出版物,并且当我给出部分作者的部分书名时。我希望以最相关的匹配在顶部的顺序返回匹配。
解决方案
也许您可以像这样进行正则表达式搜索:(让字段名称为 "quotes" ):
BoolQueryBuilder searchFilter = QueryBuilders.boolQuery();
searchFilter.must(QueryBuilders.regexpQuery("quotes",".*err is to hum.*").flags(RegexpFlag.ALL));
这将返回包含表达式 "err is to hum" 的所有引号,例如匹配条目可能是 "To err is to human" 。
.*___.*
用于包含搜索(用搜索 exp 代替破折号)
.*___
以。。结束
___.*
以。。开始
~.*____.*
不包含
希望这可以帮助。
推荐阅读
- java - spring boot中的h2数据库和sql server
- python - 添加字母的用户输入,而不是按顺序
- python - pandas_datareader.get_data_yahoo 上的 KeyError
- apache-spark - 从镶木地板创建 Spark 数据帧时未正确编码的特殊字符
- php - 使用 PHP 从结构化日志字符串中检索所有 ID
- python - 如何在我的 pandas apply 语句中避免此索引错误?
- xml - 如何制作隐形 Field Odoo 14
- python - 如何使用 asyncio 运行两个函数?
- game-maker-studio-2 - Gamemaker Studio2,绘制 GUI 层冲突
- excel - 如何用vba创建多个图表