elasticsearch - 包含 Elasticsearch 中的查询或部分匹配
问题描述
我正在寻找一个单词“amend”,它可能在数据中以“amending”、“amendment”甚至“*amend”的形式出现。搜索此类单词的最佳方法是什么?我知道通配符可以实现这一点,但由于我的代码的其他部分,我被限制不使用它。有哪些不同的方法可以提供更好的搜索性能?
解决方案
您可以使用elasticsearch 的query_string功能来实现这一点。假设您使用 default standard analyzer
。
{
"query":{
"query_string":{
"default_field":"Customer",
"query":"*Jo*"
}
}
}
您可以添加多个字段,如下面的查询所示
{
"query":{
"query_string":{
"fields":[
"Customer",
"Name"
],
"query":"*Jo*"
}
}
}
推荐阅读
- lua - 在 Lua 中使用 coronaSDK 更改表中的值
- r - 如何使用 par(new=T) 在循环中绘图?
- spring - Dynamically set max-messages-per-poll property of pollerMetaData
- sqlite - 使用查询从不同的表中获取信息
- android - 如何在 maxLine TextView 的最后一行应用水平渐变边缘
- python-3.x - Groupby并找出不同之处
- javascript - 5次调用后Ajax获取请求未得到响应
- curl - 通过 java 执行 AsyncHttpClient/curl 命令没有给出正确的结果
- python - 将日期范围拆分为更小的范围
- entity-framework - Entity Framework Core 的 AddRangeAsync() 在通用方法中不起作用