Che*_*tEx 7 arrays indexing elasticsearch
我有一个在elasticsearch索引的文档:
{
"content":"Some content with @someone mention",
"mentions":["someone"],
"userId":"4dff31eaf8815f4df04e2d62"
}Run Code Online (Sandbox Code Playgroud)
我尝试用查询找到它:
{
"query": {
"filtered": {
"filter": { "term":{"userId":"4dff31eaf8815f4df04e2d62"} },
"query": {
term: {"mentions":"someone"}
}
}
}
}Run Code Online (Sandbox Code Playgroud)
没有收到任何结果.
同时查询内容工作正常:
{
"query": {
"filtered": {
"filter": { "term":{"userId":"4dff31eaf8815f4df04e2d62"} },
"query": {
"term": {"content":"some"}
}
}
}
}Run Code Online (Sandbox Code Playgroud)
搜索数组需要一些特殊的语法吗?我发现了几个课题[ 1,2 ]关于elasticsearch阵列,但没有直接回答.
UPD Get Mapping调用返回下一个结果:
{
"records": {
"all":{
"properties":{
"content":{"type":"string"},
"userId":{"type":"string"},
"mentions":{"type":"string"}
}
}
}
}Run Code Online (Sandbox Code Playgroud)
UPD2我找到了问题的根源.我不小心在我的问题中引入了一个错误.我在DB中实际拥有的用户名是"some_one"(下划线很重要).因此标准索引将其拆分为2个单词并查询导致失败的"some_one".
正如您的更新所提到的,这是正确的用法。
如果导入带有“mentions”数组的文档,则搜索匹配的数组项并将其称为“mentions”,将检索该文档。我也遇到了同样的问题,刚才自己验证了一下。
| 归档时间: |
|
| 查看次数: |
11894 次 |
| 最近记录: |