作为参考,我使用的是Elasticsearch 6.4.0
我有一个Elasticsearch查询,它返回一定的命中视频数,我正在尝试删除文本字段值过于相似的命中。我的查询是:
{
"size": 10,
"collapse": {
"field": "author_id"
},
"query": {
"function_score": {
"boost_mode": "replace",
"score_mode": "avg",
"functions": [
{
//my custom query function
}
],
"query": {
"bool": {
"must_not": [
{
"term": {
"author_id": MY_ID
}
}
]
}
}
}
},
"aggs": {
"book_name_sample": {
"sampler": {
"shard_size": 10
},
"aggs": {
"frequent_words": {
"significant_text": {
"field": "book_name",
"filter_duplicate_text": true
}
}
}
}
}
}
此查询使用自定义函数分数和筛选器来返回用户可能喜欢的书籍(他们尚未创作的书籍)。对于某些人来说,它返回的名字非常相似的书(即乔治·华盛顿的一生,乔治·华盛顿的美好时光,谁是乔治·华盛顿),我希望热门歌曲有一套更多样化的名字。
我正在使用bucket_selector根据文本相似性聚合命中,查询给我类似的东西:
...,
"aggregations": {
"book_name_sample": {
"doc_count": 10,
"frequent_words": {
"doc_count": 10,
"bg_count": 482626,
"buckets": [
{
"key": "George",
"doc_count": 3,
"score": 17.278715785140975,
"bg_count": 9718
},
{
"key": "Washington",
"doc_count": 3,
"score": 15.312204414323656,
"bg_count": 10919
}
]
}
}
}
是否可以在Elasticsearch中根据此聚合结果过滤返回的文档?IE删除book_name_sampledoc_count
小于X的命中?我知道我可以在PHP或任何使用命中的语言中执行此操作,但我想将其保存在ES中。我尝试过使用bucket_selector聚合器,如下所示:
"book_name_bucket_filter": {
"bucket_selector": {
"buckets_path": {
"freqWords": "frequent_words"
},
"script": "params.freqWords < 3"
}
}
但是我收到一个错误:org.elasticsearch.search.aggregations.bucket.sampler.InternalSampler不能转换为org.elasticsearch.search.aggregations.InternalMultiBucketAggregation
此外,如果该过滤器删除了足够多的文档,使得命中计数小于请求的大小,是否可以告诉es去获取下一个最高得分的命中,以便填写< code>hits计数?
为什么不在聚合中使用tophits来获取与bucket匹配的相关文档?您可以指定在热门点击聚合中需要多少相关热门点击。基本上,这将为每个存储桶提供一定数量的文档。
我对Elasticsearch相当陌生,所以这是我的问题。我想用elasticsearch做一个搜索查询,想用多个术语过滤。 如果我想搜索用户'Tom',那么我希望获得用户'is active=1'、'is private=0'和'is owner=1'的所有匹配项。 这是我的搜索查询 谢谢你的帮助!!
我有一个关于书籍的数据集,每本书都可以是一种或多种语言的。每个用户都注册为拥有一种或多种语言。 当用户搜索书籍时,我只想返回那些他们理解所有语言的书籍。 例如,系统中有以下两本书: 如果John被注册为懂英语、德语、法语和意大利语,那么他的查询结果永远不应该包括Book B。 我的系统目前是使用Apache Solr编写的,最后我编写了一个插件来执行子集操作(如果记录的语言是用户语言的子集,则该记
我有一份这样的文件 下面是我到目前为止所尝试的
我有一堆像下面这样的文件。我想过滤projectkey以~开头的数据。我确实读过一些文章,其中说~是弹性查询中的一个运算符,因此无法真正使用它进行过滤。有人能帮你建立搜索查询/branch/u搜索API吗?? 更新*** 我在下面使用prerana的答案在我的查询中使用-prefix 当我使用前缀和范围时仍然有问题-我得到以下错误-我缺少什么??
我正在开发JSF项目并将Elastic Search与本机JavaApi(不是Jest)一起使用。我在elasticsearch索引映射中为高级全文搜索定义了分析器和nGram过滤器。如何使用java api进行此查询定义?
我试图从弹性搜索集群中获取数据。索引名称:testIndex类型:testType主机:localhost端口:8080 我想使用弹性搜索5.4版本,使用RestClient,我想使用多重匹配查询获取数据。 示例查询如下所示。 最好的方法是什么?我是否可以使用QueryBuilder构建查询并将其用于rest客户端。