我是elasticsearch的新手,并试图通过遵循文章https://www.elastic.co/blog/you-complete-
me
来集成应用程序的自动完成功能。
我遵循以下方法进行相同操作。
活动班
public class Event {
private Long eventId;
private Long catalogId;
private Long orgId;
private String orgName;
private String catalogName;
private String name;
private String eventStatus;
.....
}
objectmapper用于将事件对象转换为json字符串。这是插入文档的代码
public String createEventDocument(Event document) throws Exception {
IndexRequest indexRequest = new IndexRequest(INDEX, TYPE, document.idAsString())
.source(convertEventDocumentToMap(document));
//create mapping with a complete field
IndexResponse indexResponse = client.index(indexRequest, RequestOptions.DEFAULT);
return indexResponse.getResult().name();
}
转换代码
private Map<String, Object> convertEventDocumentToMap(Event evt) {
return objectMapper.convertValue(evt, Map.class);
}
我想创建一个索引,并为name_suggest字段设置完成建议器。我怎样才能达到同样的目的?
任何帮助表示赞赏
这是执行相同操作的解决方案。首先使用映射器创建索引并插入数据
public String createEventDocument(Event document) throws Exception {
GetIndexRequest request = new GetIndexRequest();
request.indices(INDEX);
boolean exists = client.indices().exists(request, RequestOptions.DEFAULT);
if(!exists){
createIndexWithMapping();
}
IndexRequest indexRequest = new IndexRequest(INDEX, TYPE, document.idAsString())
.source(convertEventDocumentToMap(document));
//create mapping with a complete field
IndexResponse indexResponse = client.index(indexRequest, RequestOptions.DEFAULT);
return indexResponse.getResult().name();
}
private boolean createIndexWithMapping() throws IOException {
CreateIndexRequest createIndexRequest = new CreateIndexRequest(INDEX);
XContentBuilder builder = XContentFactory.jsonBuilder();
builder.startObject();
{
builder.startObject( "properties" );
{
builder.startObject( "name_suggest" );
{
builder.field( "type", "completion" );
}
builder.endObject();
}
builder.endObject();
}
builder.endObject();
createIndexRequest.mapping(TYPE,builder);
createIndexRequest.timeout(TimeValue.timeValueMinutes(2));
CreateIndexResponse createIndexResponse = client.indices().create(createIndexRequest, RequestOptions.DEFAULT);
return createIndexResponse.isAcknowledged();
}
我是弹性搜索的新手,并试图通过以下文章为应用程序集成自动完成功能:https://www.elastic.co/blog/you-complete-me。 我也遵循下面的方法来做同样的事情。 感谢任何帮助
问题内容: 我正在尝试使用mongodb- river使用以下命令在elasticsearch中为mongodb编制索引,但文档映射未生效。它仍然使用默认的分析器(标准)作为字段 Mongodb-river 该文档指定了索引的创建,但是没有有关如何提供自定义映射的文档。这就是我尝试过的。是否有其他文档可以找到如何在使用mongodb- river的过程中指定自定义分析器等。 如果我按全字词搜索,但
问题内容: 我正在努力完成索引创建这一简单任务,目标是使用分析器和字段映射创建索引。当我使用分析器创建索引时,我可以通过分析api调用与分析器通信,但是当我添加映射信息时,创建索引调用失败,并显示“字段[$ field]]找不到Analyzer [analyzer1]”,我创建了一个脚本来显示问题: 问题答案: 我相信您的问题是这些设置需要嵌套在JSON的一个节点内,而不是您所拥有的嵌套在一个节点
我使用的是弹性搜索版本7.1.0和NEST 6.7.0以及ElasticSearch.NET 6.7.0。当我试图创建索引时,我出现了一个错误。 这是我的代码,我在NEST和ElasticSearch.NET 6.4.0版上使用了相同的代码,并且运行良好 null 代码400来自:PUT/local_brainbank_index。servererror:type:mapper_parsing_e
问题内容: 我想知道是否可以使用其API在Jenkins中创建新用户。我可以创建作业,但Jenkins的API文档与用户创建没有任何关系。 实际上,我必须先创建一个新用户,然后为该用户创建一个新作业,所有这些工作均使用API。 问题答案: 没错,没有用于添加用户的显式CLI命令。但是您可以为此使用groovy脚本(使用CLI执行)。 详细信息取决于您的Jenkins的配置方式。例如,如果您的J
我想运行一个我已经创建并上传到docker hub上的图像。是否可以在lxc/lxd上运行该映像?基本上,我想在docker和lxc之间进行性能比较。 我已经安装了skopeo、umoci、go-md2man和jq。 现在,当我尝试运行命令lxc create c1-toci–--url时docker://awaisaz/test:part2它给出了信任策略错误/etc/容器/政策。json不是这