当前位置: 首页 > 知识库问答 >
问题:

是否可以使用Spring的注释为ElasticSearch中的映射定义完成建议?

徐佐
2023-03-14
@Document(indexName="ws",type="vid")
public class Vid {
    @Id 
    private String id;

    @Field(type=FieldType.String, index=FieldIndex.not_analyzed)
    private List<String> tags;
}
{ 
    "id" : "someId",
    "tags" : [ "one", "two", "three" ]
}
{
    "vid": {
        "properties": {
            "id": {
                "type": "string"
            },
            "tags": {
                "type": "completion",
                "index_analyzer": "simple",
                "search_analyzer": "simple",
                "payloads": true
            }
        }
    }
}
{
    "id": "someId",
    "tags": {
        "input": [ "one", "two", "three" ]
    }
}
{
    "id": "someId",
    "tags": [ "one", "two", "three" ],
    "tags_suggest": {
        "input": [ "one", "two", "three" ]
    }
}

最后,我在http://docs.spring.io/spring-data/elasticsearch/docs/current/api/index.html?org/springframework/data/elasticsearch/core/completity/completion.html的spring-data-elasticsearch中找到了这个javadoc页面。我确信这个类与完成暗示器有关,但我不知道如何使用它。

我是否可以使用Spring注释来定义completation suggester的Elasticsearch映射?

共有1个答案

徐知
2023-03-14

当然可以..

您可以这样配置您的实体:

...
import org.springframework.data.elasticsearch.core.completion.Completion;
...

@Document(indexName = "test-completion-index", type = "annotated-completion-type", indexStoreType = "memory", shards = 1, replicas = 0, refreshInterval = "-1")
public class YoutEntity {

    @Id
    private String id;
    private String name;

    @CompletionField(payloads = true, maxInputLength = 100)
    private Completion suggest;

    ...
}

例如,检查此链接。

 类似资料:
  • 以下是我的上下文:我使用byteBuddy动态生成一个类,该类根据外部配置将一个对象转换为另一个对象。我遇到了一些问题,我想找到一个替代方案,这就是我发现MapStruct的方式。 因此,我试图构建简单的映射器,我想知道是否有可能自定义注释以添加转换函数。例如,我想要: 在mapper实现中,我会有如下内容: 如果有人能帮我做到这一点,我将不胜感激,这将节省我很多时间。 提前谢谢。

  • 从这个问题,有可能注入map与枚举? 例如,我有枚举: 我有一些与实现的接口: 但这样的注入不起作用: 我想自动注入。如何修复它,在spring框架端生成这样的代码?

  • 我目前正在将我的项目从Hibernate HBM映射迁移到注释。就我应付小班而言,一切都很容易。但我有相同的大型类,我尝试为这个类混合映射和注释。我了解到,通过使用hibernate属性“hibernate.mapping.priority”并将其设置为“class,hbm”而不是“hbm,class”,这是可能的。(请参阅:在Hibernate中:可以为实体混合注释和XML配置吗?) 例如,我有

  • 我有这些桌子: 由该类表示: 原因:org.hibernate.mappingException:无法确定:java.util.map的类型,位于表:product,列:[org.hibernate.mapping.simplevale.getType(simplevale.java:349)位于org.hibernate.mapping.simplevale.isvalid(simplevale

  • 这是我的代码(简单但有效),它是一个计算引擎,通过按特定顺序应用规则进行试验: 我想用自定义注释对此进行编码,因为我的目标是统计哪些引擎调用哪些规则,我认为这会更容易: 然后我可以用org扫描。springframework。上下文注释。ClassPathScanningCandidateCom使统计更容易。 这可能吗(怎么可能?)?这是好办法吗?我还有别的办法吗?