我的查询如下:
/2013-01-01/search?q=(and author:'william' category:'Videos')&q.parser=structured&expr.random=_rand&return=_all_fields&size=1
Run Code Online (Sandbox Code Playgroud)
并返回一个视频.但是,我希望每个请求都有一个随机videoId.
使用表达式&expr.random=_rand;我无法获取随机结果,我在文档中找不到任何解决方案.
如何在每个请求中获得随机搜索结果?
我的团队的应用程序在我们的应用程序数据库中的11个表中有许多数据类型.为了在所有这些类型的特定字段上实现有效的关键字搜索,我们正在探索AWS CloudSearch作为一个选项.我们的目的是为给定的关键字搜索返回所有记录类型的相关结果.
我的理解是每个记录类型(每个表)最终都会在一个单独的CloudSearch域中.如果是这种情况,该服务是否允许跨多个域进行搜索?或者在返回后需要提交和合并多个请求?
如果我在上面的任何一点上弄错了,请纠正我.我一般都在搜索CloudSearch文档以获取有关此内容的提示,但尚未得出任何结论.
附注:
我们的替代方案是非自托管的ElasticSearch服务,它可以解决这个问题.但是,我们的应用程序生态系统目前仅在少数AWS服务中托管.在这方面,CloudSearch与ElasticSearch的优缺点尚不清楚.如果可以通过与上述相关的技术原因作出认可,我将不胜感激.虽然,我尊重这不是一般的专业与利弊讨论的地方.
我在int-array类型的字段中遇到此问题.使用aws-sdk for Node.js,我通过CloudSearchDomain.uploadDocuments()方法提交文档.文档的JSON(在searchContent变量中)是在节点进程中创建的,然后我使用:
var params = {
contentType: 'application/json',
documents: JSON.stringify([searchContent])
};
csd.uploadDocuments(params, function(err, data){
...(callback process)...
});
Run Code Online (Sandbox Code Playgroud)
非字符串化的searchContent对象如下所示:
{ id: 1,
type: 'Product',
hash_type_id: 'Product-1',
name: 'Test product',
description: 'A test product',
category: [ 2 ],
content: '<some text here>',
state: [ 1 ],
hash_all: '<some text>'
}
Run Code Online (Sandbox Code Playgroud)
和字符串化如下:
[{"id":1,"type":"Product","hash_type_id":"Product-1","name":"Test product","description":"A test product","content":" <some text>","category":[2],"state":[1],"hash_all":"<some text>"}]
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
{
"message": "{ [\"The value of category cannot be a JSON array or object\"] }",
"code": …Run Code Online (Sandbox Code Playgroud) 我正在测试Amazon Cloudsearch我的Web应用程序,我遇到了一些奇怪的问题.
我有以下域指标:name,email,id.
例如,我有以下数据:John Doe,John @ example.com,1
当我搜索时,jo我什么都没得到.如果我搜索joh我仍然什么都没有,但如果我搜索john然后我得到上面的文件作为命中.当我放置部分字符串时为什么没有得到?我甚至提出了建议器name并启用email了模糊匹配.还有别的东西我不见了吗?我在下面看到了这个:
http://docs.aws.amazon.com/cloudsearch/latest/developerguide/searching-text.html
http://docs.aws.amazon.com/cloudsearch/latest/developerguide/searching.html
http://docs.aws.amazon.com/cloudsearch/latest/developerguide/searching-compound-queries.html
我正在使用boto以及AWS页面上的表单进行搜索.
我已经使用保存地址的记录设置了Amazon CloudSearch域。我想在地址字段上进行模糊文本搜索。
说我有一条记录,其地址如下:
1600 Amphitheatre Parkway, Mountain View, CA 94043.
Run Code Online (Sandbox Code Playgroud)
如果我搜索,'Amphitheatre Parkway, Muntain View'~5没有结果。我基本上删除了“山”中的“ o”,但找不到任何结果。
如果我搜索Muntain~5它,它将找到它,但是如果我搜索Miunntain~5它,则找不到任何东西。
我应该补充一点,我创建了一个自由文本分析计划,没有词干,停用词或同义词。这就是用于类型的地址字段的内容text。
我应该如何设置CloudSearch以便进行此类查询?
我目前正在迁移到2013 Cloudsearch API(来自2011 API).以前,我一直在我的搜索中使用通配符前缀,如下所示:
bq=(and 'first secon*')
Run Code Online (Sandbox Code Playgroud)
我的查询有时包括构面选项,这就是我使用布尔查询语法而不是简单版本的原因.
我使用2013引擎创建了一个新的cloudsearch实例并将其编入索引.在bq现在的参数已经一去不复返了,所以我不得不使用q参数与q.parser=structured参数,以获得相同的功能.当我用这样的东西查询时:
q.parser=simple&q=first secon*
Run Code Online (Sandbox Code Playgroud)
......我收到了大量的结果.但是当我查询时:
q.parser=structured&q=(prefix 'first secon')
Run Code Online (Sandbox Code Playgroud)
......我没有点击.我没有收到错误,只是没有找到结果.难道我做错了什么?
我刚刚意识到,如果我firs使用2013 API 对单词进行前缀搜索,则前缀搜索似乎正在起作用.但是如果我在查询中只有一个单词,first secon那么前缀搜索就不起作用了.那么如何使用结构化前缀运算符完成?
我何时应该通过AWS CloudSearch使用AWS Elasticsearch,反之亦然?
是否可以使用单个命中的唯一文档 ID 通过 Amazon CloudSearch 搜索数据
示例:在 Json 格式中获取结果
stdClass Object
(
[rank] => -text_relevance
[match-expr] => (label company_name:'Greenline')
[hits] => stdClass Object
(
[found] => 6
[start] => 0
[hit] => Array
(
[0] => stdClass Object
(
[id] => ras_csv_693
[data] => stdClass Object
(
[all_us_sic_codes] => Array
(
[0] => 55719901
)
[company_name] => Array
(
[0] => Greenline Equipment
)
[contact_first_name] => Array
(
[0] => John
)
[total_employees] => Array
(
[0] => 30
) …Run Code Online (Sandbox Code Playgroud) 我正在关注本教程:http: //boto.cloudhackers.com/en/latest/cloudsearch_tut.html
我已经安装了boto 2.6.命令:
conn = boto.connect_cloudsearch()
Run Code Online (Sandbox Code Playgroud)
产生错误:
>>> conn = boto.connect_cloudsearch()Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "boto/__init__.py", line 616, in connect_cloudsearch
from boto.cloudsearch.layer2 import Layer2
File "boto/cloudsearch/layer2.py", line 26, in <module>
from .domain import Domain
File "boto/cloudsearch/domain.py", line 34, in <module>
from .document import DocumentServiceConnection
File "boto/cloudsearch/document.py", line 30, in <module>
import requests
ImportError: No module named requests
Run Code Online (Sandbox Code Playgroud)
如何找到丢失的请求模块?
我有一个域,我有2个可搜索的字段(文字和文本字段),基本上是类别和内容.
如何指定要在字段中使用的特定字段?据我所知,它将默认搜索所有可搜索的字段,但这不是我想要的(即,不想查找类别Cats并从另一个类别获取结果只是因为它包含单词Cat in the内容.)
我正在使用.Net SDK,我一直在阅读他们的文档,但找不到该部分.
谢谢!