如何使用 RESTHightLevelCient 对多个字符串执行搜索



我有一个有多个字符串的字段,如何使用 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 代替破折号(

.*___结尾为

___.*开头

为不包含~.*____.*

希望这有帮助。

相关内容

  • 没有找到相关文章

最新更新