我不熟悉Elasticsearch和Nest,请原谅我的无知。我想在Elasticsearch v2.3.5中使用过滤器和multi\u匹配查询,但到目前为止,我还无法解决这个问题。我想,一旦我把它用于Elasticsearch,我应该能够将它映射到Nest。
以下是我的JSON数据结构:
{
"contentID":1,
"categoryID":0,
"title":"...",
"description":"...",
"contentHtml":"...",
"version":2,
"parentContentID":0,
"displayOrder":0,
"freshdeskID":0,
"isDraft":false,
"isCommentingEnabled":false,
"isArticle":false,
"grandParentContentID":0,
"isAnyParentDraft":false
}
下面是我的工作搜索查询(没有任何过滤器):
POST contents/supportitem/_search?pretty=true
{
"size": 150,
"highlight": {
"fields": {
"contentHtml": {
"fragment_size": 245
}
}
},
"_source": {
"include": [
"title",
"contentID",
"description",
"thumbnailUrl",
"isDraft",
"isAnyParentDraft",
"grandParentContentID"
]
},"query": {
"multi_match": {
"type": "cross_fields",
"query": "query typed by user",
"tie_breaker": 0.3,
"fields": [
"title^1.1",
"additionalContents^1.2",
"contentHtml^1"
]
}
}
}
我只想在搜索结果中向用户显示这些记录,其中:
grandParentContentID != 0 and
isDraft != false and
isAnyParentDraft != false
我尝试了不同的查询,但我不知道如何写这个。
两个不起作用的查询包括:
POST contents/supportitem/_search?pretty=true
{
"size": 150,
"highlight": {
"fields": {
"contentHtml": {
"fragment_size": 245
}
}
},
"_source": {
"include": [
"title",
"contentID",
"description",
"thumbnailUrl",
"isDraft",
"isAnyParentDraft",
"grandParentContentID"
]
},"query": {
"multi_match": {
"type": "cross_fields",
"query": "Tile map server resources",
"tie_breaker": 0.3,
"fields": [
"title^1.1",
"additionalContents^1.2",
"contentHtml^1"
]
},"filtered": {
"filter": {
"bool": {
"term": {
"isAnyParentDraft": "false"
}
}
}
}
}
}
POST contents/supportitem/_search?pretty=true
{
"size": 150,
"highlight": {
"fields": {
"contentHtml": {
"fragment_size": 245
}
}
},
"_source": {
"include": [
"title",
"contentID",
"description",
"thumbnailUrl",
"isDraft",
"isAnyParentDraft",
"grandParentContentID"
]
},"query": {
"multi_match": {
"type": "cross_fields",
"query": "Tile map server resources",
"tie_breaker": 0.3,
"fields": [
"title^1.1",
"additionalContents^1.2",
"contentHtml^1"
]
},"filtered": {
"query": {
"bool": {
"must": [
{
"field": {"isAnyParentDraft": "false"}
}
]
}
}
}
}
}
我得到“无法解析搜索源。需要字段名,但得到了[START\u OBJECT]”
我已经做到了,但我不知道如何添加更多的过滤器:
POST contents/supportitem/_search?pretty=true
{
"size": 150,
"highlight": {
"fields": {
"contentHtml": {
"fragment_size": 245
}
}
},
"_source": {
"include": [
"title",
"contentID",
"description",
"thumbnailUrl",
"isDraft",
"isAnyParentDraft",
"grandParentContentID"
]
},
"query": {
"filtered": {
"query": {
"multi_match": {
"type": "cross_fields",
"query": "deleted",
"tie_breaker": 0.3,
"fields": [
"title^1.1",
"additionalContents^1.2",
"contentHtml^1"
]
}
},
"filter": {
"and": {
"filters": [
{
"term": {
"isAnyParentDraft": "false"
}
}
]
}
}
}
}
}
我提出以下问题:
带有multi_match和bool的ElasticSearch-只有一个过滤器
Elasticsearch:multi_match过滤器没有效果
很好的开始,你就快到了:
POST contents/supportitem/_search?pretty=true
{
"size": 150,
"highlight": {
"fields": {
"contentHtml": {
"fragment_size": 245
}
}
},
"_source": {
"include": [
"title",
"contentID",
"description",
"thumbnailUrl",
"isDraft",
"isAnyParentDraft",
"grandParentContentID"
]
},
"query": {
"bool": {
"must": {
"multi_match": {
"type": "cross_fields",
"query": "deleted",
"tie_breaker": 0.3,
"fields": [
"title^1.1",
"additionalContents^1.2",
"contentHtml^1"
]
}
},
"must_not": [
{
"term": {
"isAnyParentDraft": "false"
}
},
{
"term": {
"isDraft": "false"
}
},
{
"term": {
"grandParentContentID": 0
}
}
]
}
}
}
我在ES中有一个多匹配查询,希望添加一个过滤器。 添加此筛选器的语法是什么? 我试过:
问题内容: 我在ES中有一个多匹配查询,并希望添加一个过滤器。 添加此过滤器的语法是什么? 我试过了: 问题答案: 根据您的需要,必须将过滤器放置在正确的位置。您有两种选择: 使用顶级过滤器,并将该过滤器仅应用于搜索结果,而不应用于各个方面 使用过滤的查询,并将过滤器应用于搜索结果和构面
如何使此过滤器在同一文本中的多个匹配项上工作? 这是返回链接的函数 使用筛选器的示例文本: Ut[点击这里|节点: 4]enim ad minim veniam,quis[点击这里|术语: 42]nostr的练习ullamco的劳动是新的和其他的结果。Duis ate irure Dolor in re的谴责在流言蜚语velit esse cilum[点击这里|术语: 1]Dolore eu fu
问题内容: 我需要按类别过滤项目列表。我希望用户能够单击一个按钮,然后将过滤器应用于列表。 目前,我已经在一定程度上进行了这项工作。 举例来说,我有一个电影列表,如下所示: 我还有一个电影流派列表(渲染为按钮,单击该按钮将过滤电影列表),如下所示: (“ changeGenre()”函数所做的全部工作就是更新范围,以显示当前正在查看的流派)。 现在这个方法可以正常工作,直到我遇到两种类型的情况:“
问题内容: 我正在使用ORB特征检测器使用以下代码查找两个图像之间的匹配项: 我的问题是我找不到过滤匹配项的方法,因此仅当它们在照片中具有相似位置时才匹配。即使一个关键点在位置上距离很远,我也总是会得到多个匹配。 有没有办法更好地过滤它们? 问题答案: 为了获得更好的匹配结果,您应该以给定的顺序包括这些过滤方法。 在两个方向上执行匹配,即对于第一张图像中的每个点,在第二张图像中找到最佳匹配,反之亦
我对查询和过滤器之间的区别有点困惑。我的困惑源于我在文档中读到的以下句子。 建议筛选器优于查询,因为筛选器不会触发分数计算。 只有在响应为是/否或精确搜索时才应使用筛选器。 筛选器可以有称为“查询筛选器”的查询(如“术语筛选器”等) 所有我想要的是过滤4个属性值,放在一个日期范围和总和(聚合)在几个字段。像这样