有什么方法可以boost
根据类型在同一字段上搜索结果?
我的基本提升是这样的:
GET _search
{
"query": {
"simple_query_string": {
"query": "mangan",
"fields":["_all", "title^6"]
}
}
}
但是对于其他一些文档,我希望标题不太重要,因此我尝试使用type作为前缀:
GET _search
{
"query": {
"simple_query_string": {
"query": "mangan",
"fields":[
"_all",
"DocumentationPage.title^6",
"DocumentationPage.title^6"]
}
}
}
但是,这根本没有助益。作为最后的选择,我可以使用Funcsion / Script
Score
bu来避免这种情况。
例如,假设文档仅包含title
字段。
实现此目的的一种简单方法是将OP中的查询重写为dis-
max查询
。
elasticsearch 5.x的示例:
{
"query": {
"dis_max": {
"queries": [
{
"simple_query_string": {
"fields": [
"_all"
],
"query": "mangan"
}
},
{
"bool": {
"filter": {
"type": {
"value": "DocumentationPage"
}
},
"must": [
{
"simple_query_string": {
"fields": [
"title^6"
],
"query": "mangan"
}
}
]
}
}
]
}
}
}
问题内容: 我有一个Rails应用程序,我从Sphinx切换到ElasticSearch并使用gem searchkick。 我有一个教师模型和一个标签模型(通过宝石),其中一个教师可以关联多个标签。在教师模型中,我定义了这样的索引: 名称,简介和简介是教师的属性,但是我想为与该老师相关联的标签的名称建立索引。我怎样才能做到这一点? 现在,它索引对象的名称(关系),我如何索引标签对象内部的属性名称
问题内容: 我有一个这样的映射: 我需要按对象的大小进行搜索。我已经试过了: 这是行不通的。给出错误 嵌套:ElasticSearchIllegalArgumentException [在类型为[post]的映射中未找到[提及]的字段]; 我还尝试过用替换脚本部分。这也是错误的 嵌套:ArrayIndexOutOfBoundsException [10]; 如何查询对象大小为2的记录? 问题答案:
我有:一个实体有一个的集合,每个阶段都有一个的集合。Stage项可以有几种类型,我在JPA/Hibernate中使用它们作为带有鉴别器列的继承策略。 我需要lucene查询返回在类型a的阶段项(类中的字段)中具有特定细节的请求。我无法让hibernate搜索查看子类中的字段。 因此这个lucene查询不起作用(返回0个结果): 但基于中的字段进行搜索有效:
我无法编写请求主体来获取弹性搜索中多个字段上的平均聚合。 我有两个字段field1和field2都是“double”数据类型。我能够获取单个字段的平均聚合。 这适用于单个字段: 和两个字段(给出错误) 我收到的错误是“类型为[avg]的聚合器[group\U By\U field1]无法接受子聚合”“无法解析名为[AVGVALUESOFCITEMPIDE]的BaseAgregationBuilde
假设我有一个抽象类Product,我还有两个实体用不同的字段扩展它:ProductA和ProductB。我正在使用Product repository,使用Specification和SpecificationBuilder,并使用一些常用字段来搜索它们。我想完成的是检测它是什么类型的产品(A或B),并在此基础上使用不同的搜索查询。 例如,ProductA有库存,ProductB有功能,因此如果我
问题内容: 在文档中,某些类型(例如数字和日期)指定存储默认为no。但是该字段仍然可以从json中检索。 令人困惑。这是否表示_source? 有没有办法根本不存储字段,而只是对其建立索引并进行搜索? 问题答案: 默认情况下,不存储任何字段类型。只有领域。这意味着您始终可以取回发送给搜索引擎的内容。即使您要求特定的字段,elasticsearch也会为您解析该字段并将其退还给您。 您可以根据需要禁