gpt4 book ai didi

mapping - Elasticsearch 如何在ouchdb的附件文件中找到单词?

转载 作者:行者123 更新时间:2023-12-02 22:42:38 24 4
gpt4 key购买 nike

嗨,请给我指示。
我正在使用elasticsearch 0.17.6和couchdb 1.1.0

我在沙发上创建了两个文档:
每个文档都有字符串字段:名称,消息。第一个附有文本文件“test.txt”,第二个则没有。 CouchDB生成的JSon代码如下所示:

{
"_id": "ID1",
"_rev": "6-e1ab4c5c65b98e9a0d91e5c8fc1629bb",
"name": "Document1",
"message": "Evaluate Elastic Search",
"_attachments": {
"test.txt": {
"content_type": "text/plain",
"revpos": 5,
"digest": "md5-REzvAVEZoSV69SLI/vaflQ==",
"length": 86,
"stub": true
}
}
}

{

"_id": "ID2",
"_rev": "2-72142ec18248cedb4dba67305d136aa8",
"name": "Document2",
"message": "test Elastic Search"
}

这两个文档位于名为my_test_couch_db的数据库中

我已经使用Elasticsearch(ES)使用插件将这些文档编入索引:river和mapper-attachments。对于每个给定的文本,我希望ES不仅可以在文档字段中找到对应的文本,而且可以在附件* .txt文件中找到。但这是不可能的。我尝试了很多方法:我已经手动创建了索引,自动(手动和手动)映射,配置了River等,但是ES只能在文档字段中找到单词,而在* .txt附件文件中找不到单词。我遵循 http://www.elasticsearch.org站点的指示,但是它也不起作用。

感谢您的回答。

这是我的命令:
curl -X PUT "localhost:9200/test_idx_1"

curl -X PUT "localhost:9200/test_idx_1/test_mapping_1/_mapping" -d '{
"test_mapping_1": {
"properties": {
"_attachments": {
"type": "attachment",
"index": "yes"
}
}
}
}'

curl -XPUT 'http://localhost:9200/_river/test_river_1/_meta' -d '{
"type": "couchdb",
"couchdb": {
"host": "localhost",
"port": 5984,
"db": "my_test_couch_db",
"filter": null
},
"index": {
"index": "test_idx_1",
"type": "test_mapping_1"
}
}'

然后,我尝试搜寻
curl -XPOST 'http://localhost:9200/my_test_couch_db/my_test_couch_db/_search'

(两个文件都很好找到)
curl -XPOST 'http://localhost:9200/my_test_couch_db/my_test_couch_db/_search' -d '{
"query": {
"text": {
"_all": "test"
}
}
}'

这是输出
{
"took": 3,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 0.081366636,
"hits": [
{
"_index": "my_test_couch_db",
"_type": "my_test_couch_db",
"_id": "ID2",
"_score": 0.081366636,
"_source": {
"message": "test Elastic Search",
"_rev": "2-72142ec18248cedb4dba67305d136aa8",
"_id": "ID2",
"name": "Document2"
}
}
]
}
}

如您所见,ES只能在消息字段中找到单词“test”,而在* .text附件文件中找不到该单词。

我尝试其他查询:
curl -XPOST 'http://localhost:9200/my_test_couch_db/my_test_couch_db/_search' -d '{
"query": {
"text": {
"_attachments": "test"
}
}
}'

{
"took": 0,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 0,
"max_score": null,
"hits": []
}
}

curl -XPOST 'http://localhost:9200/my_test_couch_db/my_test_couch_db/_search' -d '{
"query": {
"text": {
"_attachments.fields.file": "test"
}
}
}'

{
"took": 0,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 0,
"max_score": null,
"hits": []
}
}

输出为空。我尝试了其他映射,但也不起作用。

为什么会这样以及如何解决这个问题?

最佳答案

附件尚未由bedDb河加载。
我已经对其进行了更新,但仍在等待用户正常运行。

参见https://github.com/dadoonet/elasticsearch-river-couchdb/tree/attachments
您可以在这里尝试:https://github.com/downloads/dadoonet/elasticsearch-river-couchdb/elasticsearch-river-couchdb-1.2.0-SNAPSHOT.zip

如果适合您,我可以创建拉取请求。

关于mapping - Elasticsearch 如何在ouchdb的附件文件中找到单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7110079/

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