我是Elasticsearch的新手,我必须执行以下查询:
GET book-lists/book-list/_search
{
"query":{
"filtered":{
"filter":{
"bool":{
"must":[
{
"term":{
"title":"Sociology"
}
},
{
"term":{
"idOwner":"17xxxxxxxxxxxx45"
}
}
]
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
根据Elasticsearch API,它等同于伪SQL:
SELECT document
FROM book-lists
WHERE title = "Sociology"
AND idOwner = 17xxxxxxxxxxxx45
Run Code Online (Sandbox Code Playgroud)
问题是我的文档看起来像这样:
{
"_index":"book-lists",
"_type":"book-list",
"_id":"AVBRSvHIXb7carZwcePS",
"_version":1,
"_score":1,
"_source":{
"title":"Sociology",
"books":[
{
"title":"The Tipping Point: How Little Things Can Make a Big Difference",
"isRead":true,
"summary":"lorem ipsum",
"rating":3.5
}
],
"numberViews":0,
"idOwner":"17xxxxxxxxxxxx45"
}
}
Run Code Online (Sandbox Code Playgroud)
并且上面的Elasticsearch查询不会返回任何内容.
然而,此查询返回上面的文档:
GET book-lists/book-list/_search
{
"query":{
"filtered":{
"filter":{
"bool":{ …Run Code Online (Sandbox Code Playgroud) 这是一个由两部分组成的问题.
我的文件看起来像这样:
{"url": "https://someurl.com",
"content": "searchable content here",
"hash": "c54cc9cdd4a79ca10a891b8d1b7783c295455040",
"headings": "more searchable content",
"title": "Page Title"}
Run Code Online (Sandbox Code Playgroud)
我的第一个问题是如何检索"标题" 正好是 "无标题"的所有文档.我不希望出现标题为"此文档没有标题"的文档.
我的第二个问题是如何检索所有文件,其中'url' 恰好出现在一长串网址中.
我正在使用pyelasticsearch,但curl中的通用答案也可以.