标签: amazon-cloudsearch

在亚马逊云搜索上载文件?

我们可以使用API​​在AWS Cloud Search上上传文件(文本,pdf等)吗?我阅读了它的文档,但我没有得到任何参考

http://docs.amazonwebservices.com/cloudsearch/latest/developerguide/SvcIntro.html?r=130.

或者我是否必须创建包含文档中提取的文本的SDF.

java cloud amazon-web-services amazon-cloudsearch

6
推荐指数
1
解决办法
5664
查看次数

如何连接到boto中的现有CloudSearch域?

我刚刚开始使用boto连接到Amazon CloudSearch.

我让这些示例正常工作,但我找不到任何连接到现有域的示例,所有示例都创建了一个新域.

我四处寻找get_domain,但如果我在连接对象上调用它,那就失败了.

>>> conn.get_domain('foo')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Layer2' object has no attribute 'get_domain'
Run Code Online (Sandbox Code Playgroud)

有关如何连接到现有域的任何建议?

[编辑]我从这开始:http://boto.cloudhackers.com/en/latest/cloudsearch_tut.html

所以,我正在这样做

import boto
conn = boto.connect_cloudsearch()
Run Code Online (Sandbox Code Playgroud)

python boto amazon-web-services amazon-cloudsearch

6
推荐指数
2
解决办法
2913
查看次数

我们可以在亚马逊cloudsearch中以json格式添加对象数组吗?

我正在尝试创建一个域并上传一个示例数据,如:

[
{
    "type": "add",
    "id": "1371964",
    "version": 1,
    "lang": "eng",
    "fields": {
        "id": "1371964",
        "uid": "1200983280",
        "time": "2013-12-23 13:00:26",
        "orderid": "1200983280",
        "callerid": "66580662",
        "is_called": "1",
        "is_synced": "1",
        "is_sent": "1",
        "allcaller": [
            {
                "sno": "1085770",
                "uid": "1387783883.30547",
                "lastfun": null,
                "callduration": "00:00:46",
                "request_id": "1371964"
            }
        ]
    }
}]
Run Code Online (Sandbox Code Playgroud)

当我在创建域时上传示例数据时,cloudsearch没有采用它.如果我删除allcaller数组,那么它将顺利进行.

如果cloudsearch不允许对象数组,那么我应该如何格式化这个json?

json amazon-cloudsearch

6
推荐指数
1
解决办法
2012
查看次数

如何将查询写入云搜索以获取部分文本匹配的结果

我正在当前的 CloudSeach 集成中添加按名称搜索选项。我正在name通过传递phrase field=name 'Stratosphere Hotel, Casino'for 来搜索密钥filter_query。如果我有一个精确的名称匹配,这工作正常。但是我的搜索输入name来自谷歌地图 API,我的 CloudSeach 中的数据可能与name键中的值不完全匹配。

IE。

search input: DoubleTree by Hilton Hotel Irvine - Spectrum 
CloudSeach value: DoubleTree by Hilton Irvine - Spectrum

search input: Candlewood Suites OC Airport- Irvine West Extended Stay Hotel 
CloudSeach value: Candlewood Suites OC Airport-Irvine West
Run Code Online (Sandbox Code Playgroud)

我已经研究过near, fuzzy logic码头,但我对 CloudSeach 还很陌生。

https://docs.aws.amazon.com/cloudsearch/latest/developerguide/searching-text.html https://docs.aws.amazon.com/cloudsearch/latest/developerguide/filtering-results.html

有没有办法进行部分单词搜索并匹配它并返回这些数据。顺便说一句,80% 的数据与 CloudSeach 上传的数据匹配名称,只有大约 20% 的数据我在搜索时遇到了问题。

amazon-web-services amazon-cloudsearch ruby-on-rails-4

6
推荐指数
0
解决办法
94
查看次数

从AWS CloudSearch删除文档

我正在尝试使用以下批处理文档删除AWS CloudSearch中的单个文档:

[{
    "type": "delete",
    "id": "532177"
}]
Run Code Online (Sandbox Code Playgroud)

但我从AWS收到以下错误: 在此输入图像描述

并在下载SDF时返回以下内容:

[
{
type: "add",
id: "delete_img_json",
version: 1406072053,
lang: "en",
fields: {
content: "[{ "type": "delete", "id": "532177" }]",
resourcename: "Delete_IMG.json",
content_encoding: "ISO-8859-2",
content_type: "application/json"
}
}
]
Run Code Online (Sandbox Code Playgroud)

我试图做的就是从我的CloudSearch索引中删除单个文档.

amazon-s3 amazon-ec2 amazon-web-services amazon-cloudsearch

5
推荐指数
1
解决办法
5383
查看次数

如果查询中包含停用词,则不会返回 Amazon Cloudsearch 结果

使用字段的确切内容作为查询查询 Amazon Cloudsearch 时,如果查询(和内容)包含停用词,Cloudsearch 不会返回任何结果。如果我从查询中删除停用词,则返回结果。

我知道在索引性能时会从内容中删除停用词,但我认为它们也会在查询中被忽略以防止这种行为。

为了让冗长的用户获得预期的结果,我是否需要从每种语言的查询中过滤掉停用词,或者 Cloudsearch 是否有办法忽略查询本身中的停用词?

索引字段内容:

The Company Search Test
Run Code Online (Sandbox Code Playgroud)

示例查询

使用停用词:

Query: the company search test
Results: NONE
Run Code Online (Sandbox Code Playgroud)

没有停用词:

Query: company search test
Results: YES
Run Code Online (Sandbox Code Playgroud)

内引:

Query: "the company search test"
Results: YES
Run Code Online (Sandbox Code Playgroud)

此示例的实现细节:

  • 索引字段类型:“文本”
  • 索引字段分析方案:“英文”
  • 为字段选择的所有选项:“返回”、“排序”、“突出显示”
  • QueryParser:“简单”
  • 在 AWS 仪表板中使用测试搜索(如果使用 Go sdk,结果相同)

amazon-web-services amazon-cloudsearch

5
推荐指数
0
解决办法
651
查看次数

AWS CloudSearch - 以JSON格式获取搜索结果

我正在从node.js中的Lambda函数在我的AWS CloudSearch域上执行搜索:

我上传了一个这样的文件:

         {
               “some_field”: “bla bla“,
               “some_date_field”: 1.466719E9,
               "number_field”: 4,
               “some_string”: "some long string blabla"
         }
Run Code Online (Sandbox Code Playgroud)

我执行这样的搜索

   var params = {
                  query: 'bla bla',
                };

    cloudsearchdomain.search(params, function(err, data) {

      if (err) {
        console.log(err, err.stack); // an error occurred
        context.fail(err); 
      } 
      else  {
        context.succeed(data);           // successful response
      }    

    });
Run Code Online (Sandbox Code Playgroud)

搜索工作正如此处所述, CloudSearch 匹配的字段属性中返回文档信息.这是一个例子:

  {
   "status": {
   "timems": 2,
   "rid": “blabla”
  },
    "hits": {
       "found": 1,
       "start": 0,
       "hit": [
               {
                "id": “452545-49B4-45C3-B94F-43524542352-454352435.6666-8532-4099-xxxx-1",
                "fields": {
                   “some_field”: [
                     “bla bla“
                    ], …
Run Code Online (Sandbox Code Playgroud)

javascript amazon-web-services node.js amazon-cloudsearch

5
推荐指数
1
解决办法
922
查看次数

Amazon CloudSearch 从 DynamoDB 创建 Null ID

我正在尝试开始使用 Amazon CloudSearch。我的数据位于我想要搜索的 DynamoDB 表中。我能够设置云搜索域,它从表中提取字段并让我设置它们,等等。但是,我上传数据时遇到了一些问题。我告诉它要从中提取 DynamoDB 表,它会提取数据并告诉我它找到了这些项目,我按下了导入按钮,但它给了我关于需要至少一个字段并且需要有一个非空 id 的错误。

我下载了它试图上传的文档列表,并且我看到这个(或类似的)在整个文档中经常重复:

{
    "type": "add",
    "id": "null",
    "fields": {

    }
  },
  {
    "type": "add",
    "id": "null",
    "fields": {
      "libraries": "721409e7-5fca-495d-a625-a5bc5f4a0434~d8ccd611-ae75-418b-91a3-13dd57d46934",
      "shadecolor": "170-98-104",
      "objecttype": "20",
      "timestamp": "2017-01-25T22:43:53.672Z"
    }
  },
Run Code Online (Sandbox Code Playgroud)

显然,我可以看到其中一个文档的 id 为空,根本没有字段,而另一个文档有字段但没有 id,这似乎是问题所在。但是我不知道这些数据来自哪里以及为什么生成它。该 ID 是我的 DynamoDB 哈希键,因此它不能为空,否则 Dynamo 不会接受它。我查看了我的 Dynamo 数据,但找不到任何类似的数据......

有人可以告诉我这里可能发生了什么以及处理它以将我的数据导入 CloudSearch 的最佳方法吗?

amazon-web-services amazon-dynamodb amazon-cloudsearch

5
推荐指数
1
解决办法
377
查看次数

当我尝试在 aws 弹性搜索中注册存储库时出现错误“不允许跨账户传递角色”

我在将存储库注册到 aws 弹性搜索时遇到问题。这是我用来执行此操作的链接:

[ http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains-snapshots.html#es-managedomains-snapshot-registerdirectory][1]

正如链接中提到的,我复制了以下代码并运行它:

from boto.connection import AWSAuthConnection
Run Code Online (Sandbox Code Playgroud)

类 ESConnection(AWSAuthConnection):

def __init__(self, region, **kwargs):
    super(ESConnection, self).__init__(**kwargs)
    self._set_auth_region_name(region)
    self._set_auth_service_name("es")

def _required_auth_capability(self):
    return ['hmac-v4']

if __name__ == "__main__":

client = ESConnection(
        region='us-east-1',
        host='search-weblogs-etrt4mbbu254nsfupy6oiytuz4.us-east-1.es.example.com',
        aws_access_key_id='my-access-key-id',
        aws_secret_access_key='my-access-key', is_secure=False)

print 'Registering Snapshot Repository'
resp = client.make_request(method='POST',
        path='/_snapshot/weblogs-index-backups',
        data='{"type": "s3","settings": { "bucket": "es-index-backups","region": "us-east-1","role_arn": "arn:aws:iam::123456789012:role/TheServiceRole"}}')
body = resp.read()
print body
Run Code Online (Sandbox Code Playgroud)

我还调整了安全性和帐户 ID 以及……以适应我的情况。当我运行它时,我收到以下错误:

b'{"Message":"Cross-account pass role is not allowed."}'
Run Code Online (Sandbox Code Playgroud)

无论我使用什么都在同一个帐户中,我还向我的用户添加了以下内联策略

{
"Version": "2012-10-17",
"Statement": {
    "Effect": "Allow",
    "Action": "iam:PassRole",
    "Resource": "arn:aws:iam::xxxxxxxxxx:role/myrole"
}
Run Code Online (Sandbox Code Playgroud)

}

任何人都可以帮助我的问题是什么?

amazon-web-services amazon-iam amazon-cloudsearch

5
推荐指数
0
解决办法
2320
查看次数

AWS CloudSearch 重新索引非常慢

我目前正在评估是否可以使用 Amazon CloudSearch 而不是 Elastic Search 来满足我们的搜索需求。现在,我只有大约 4K 的小文档用于测试目的。每当我要求它重新索引时(假设将实例类型从默认更改为 m3.2xlarge 后),需要很长时间(大约 50-60 分钟)才能从处理状态进入活动状态。这是预期的行为吗?有什么改进的建议吗?

amazon-web-services amazon-cloudsearch

5
推荐指数
0
解决办法
742
查看次数