gpt4 book ai didi

elasticsearch - 如何将内容和页面描述存储到 ElasticSearch

转载 作者:行者123 更新时间:2023-12-03 01:24:11 25 4
gpt4 key购买 nike

我能够获取页面 url 并将其存储到 elasticsearch,但我有一个要求,我必须存储页面标题、说明和内容也 ES。我相信这是可能的,但需要更清楚
IndexerBolt.java 和 ES_IndexInit.sh 上的 iication,因为我能够在 indexerBolt 中打印页面内容,但无法将内容映射到正确的字段以更新到 ES。我看到帖子
Can i store html content of webpage in storm crawler?与相同但无法理解它是如何工作的。有人可以给我一个例子或 sudo 我们如何做到这一点。

我在下面尝试过,但没有运气。
ES_IndexInit.sh

curl $ESCREDENTIALS -s -XPUT $ESHOST/status -H 'Content-Type: application/json' -d '
{
"settings": {
"index": {
"number_of_shards": 10,
"number_of_replicas": 1,
"refresh_interval": "5s"
}
},
"mappings": {
"status": {
"dynamic_templates": [{
"metadata": {
"path_match": "metadata.*",
"match_mapping_type": "string",
"mapping": {
"type": "keyword"
}
}
}],
"_source": {
"enabled": true
},
"properties": {
"nextFetchDate": {
"type": "date",
"format": "dateOptionalTime"
},
"status": {
"type": "keyword"
},
"url": {
"type": "keyword"
},
**"content": {
"type": "keyword"
}**
}
}
}
}'

IndexerBolt.java
public void execute(Tuple tuple) {

String url = tuple.getStringByField("url");

// Distinguish the value used for indexing
// from the one used for the status
String normalisedurl = valueForURL(tuple);
System.out.println("************************header::***********"+tuple.toString());
System.out.println("************************content ::***********"+tuple.getStringByField("text"));
Metadata metadata = (Metadata) tuple.getValueByField("metadata");
String text = tuple.getStringByField("text");
**String content = tuple.getStringByField("text");**
boolean keep = filterDocument(metadata);
if (!keep) {
eventCounter.scope("Filtered").incrBy(1);
// treat it as successfully processed even if
// we do not index it
_collector.emit(StatusStreamName, tuple, new Values(url, metadata,
Status.FETCHED));

**_collector.emit(StatusStreamName, tuple, new Values(content, metadata,
Status.FETCHED));**

_collector.ack(tuple);
return;
}

--
非常感谢您提前。
问候,
马达瓦

最佳答案

此 IndexerBolt 不会将文档索引到 Elasticsearch,它用于调试并将内容发送到控制台。 The one you want在 ES 模块中。

您复制的部分模式处理 状态 的 URL,而不是它们的内容。顺便说一句,您绝对不想将内容字段索引为关键字。

您需要更改内容索引的映射 add store true to the content field , 另见 ES documentation .

video tutorial SC 1.5 有点过时,但应该可以帮助您了解基础知识。

关于elasticsearch - 如何将内容和页面描述存储到 ElasticSearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58913911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com