我有一个有多个字符串的字段,如何使用 RESTHightLevelCient 为其编写搜索查询。另外,我给出的搜索字符串只是一个部分字符串。
添加更多细节。
我正在尝试实现我有多个列但只有一个搜索字符串的东西。我的搜索字符串可以是不同列的组合;此外,当字符串只是来自不同列的部分单词的组合时,我的搜索应该有效。
我正在尝试一种解决方案来使其正常工作,方法是使用单个列,该列是所有其他可搜索列的空格分隔连接,按它们在搜索中出现的顺序排列。
因此,如果我有 4 列,书名、作者、价格和出版物,并且当我将部分书名与部分作者一起给出时。我希望按最相关的匹配项位于顶部的顺序返回匹配项。
也许你可以像这样做一个正则表达式搜索:(让字段名称是"引号"(:
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 代替破折号(
.*___
结尾为
___.*
开头
为不包含~.*____.*
希望这有帮助。