- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
从昨天起我第一次使用elasticsearch,由于我的知识有限,经过两天的工作,我正在努力启动和运行简单的功能。
我的主要目标是使用 Node.js + ElasticSearch 完成任务。现在我不得不使用 mapping
功能创建索引。
我的直接问题是:我必须做什么才能使这段代码正常工作?
return client.indices.create({
index: 'index_created_with_map',
mapping: {
posts: {
user: {
type: 'string'
},
post_date: {
type: 'string'
},
message: {
type: 'string'
}
}
}
});
任何检查内容的建议将不胜感激。
此外,尽管不是我的主要问题的一部分,但任何评论如何正确地将获取和搜索功能返回到 response.send(JSON.stringify(the data from elasticsearch))
以及如何将 post_date
映射到日期类型而不是字符串将受到赞赏,因为我也陷入困境。
贝娄是我迄今为止所尝试过的。当我尝试不使用mapping
功能(如下面的addToIndex
)时,我可以看到抛出“Chrome ElastiSearch ToolBox扩展”,它确实可以工作,但我希望有单独的功能,一个用于创建显然我只会运行一次索引,另一个用于创建“记录”,这将成为我的 CRUD 的一部分。
illegal_argument_exception: no mapping found for field
错误日志:
Unhandled rejection Error: [illegal_argument_exception] request [/index_created_with_map] contains unrecognized parameter: [mapping]
at respond (/home/demetrio/dev/WSs/NodeJs/greencard-dmz-es-oracle/node_modules/elasticsearch/src/lib/transport.js:289:15)
at checkRespForFailure (/home/demetrio/dev/WSs/NodeJs/greencard-dmz-es-oracle/node_modules/elasticsearch/src/lib/transport.js:248:7)
at HttpConnector.<anonymous> (/home/demetrio/dev/WSs/NodeJs/greencard-dmz-es-oracle/node_modules/elasticsearch/src/lib/connectors/http.js:164:7)
at IncomingMessage.wrapper (/home/demetrio/dev/WSs/NodeJs/greencard-dmz-es-oracle/node_modules/lodash/lodash.js:4968:19)
at emitNone (events.js:72:20)
at IncomingMessage.emit (events.js:166:7)
at endReadableNT (_stream_readable.js:905:12)
at nextTickCallbackWith2Args (node.js:441:9)
at process._tickCallback (node.js:355:17)
我的 Controller NodeJs
var elasticsearch = require('elasticsearch');
var Promise = require('bluebird');
exports.teste = function (req, res) {
var log = console.log.bind(console);
var client = new elasticsearch.Client({
host: 'localhost:9200',
log: 'trace'
});
function createIndexWithMapping() {
return client.indices.create({
index: 'index_created_with_map',
mapping: {
posts: {
user: {
type: 'string'
},
post_date: {
type: 'string'
},
message: {
type: 'string'
}
}
}
});
}
function createIndexWithoutMapping() {
return client.create({
index: 'index_created_without_map',
type: 'posts',
id: '1',
body: {
user: 'me',
post_date: new Date(),
message: 'Hello World!'
},
refresh: true
});
}
function addToIndex() {
return client.index({
index: 'index_created_...according to the test',
type: 'posts',
id: '1',
body: {
user: 'me2',
post_date: new Date(),
message: 'Hello World!2'
},
refresh: true
});
}
function search() {
return client.search({
index: 'index_created_...according to the test',
type: 'posts',
body: {
query: {
match: {
body: 'Hello'
}
}
}
}).then(log);
}
function getFromIndex() {
return client.get({
index: 'index_created_...according to the test',
type: 'posts',
id: 1
}).then(log);
}
function closeConnection() {
client.close();
}
Promise.resolve()
.then(createIndexWithMapping)
//.then(createIndexWithoutMapping)
// .then(addToIndex)
// .then(search)
// .then(getFromIndex)
.then(closeConnection);
return res.send("a");
};
package.json
{
"name": "my-first-elasticsearch-app",
"main": "server.js",
"dependencies": {
"bcrypt-nodejs": "0.0.3",
"body-parser": "^1.0.2",
"ejs": "^1.0.0",
"elasticsearch": "^12.1.3",
"express": "^4.1.1",
"express-session": "^1.6.1",
"mongoose": "^3.8.8",
"node-rest-client": "^2.5.0",
"oauth2orize": "^1.0.1",
"passport": "^0.2.0",
"passport-http": "^0.2.2",
"passport-http-bearer": "^1.0.1",
"reqclient": "^2.1.0"
}
}
最佳答案
根据elasticsearch.js » 5.5 API Doc
client.indices.create([params, [callback]])
Params
- body
Object, JSON — An optional request body, as either JSON or a JSON serializable object. See the elasticsearch docs for details about what can be specified here.
Generic Parameters
- body
String, Anything — The body to send along with this request. If the body is a string it will be passed along as is, otherwise it is passed to the serializer and converted to either JSON or a newline separated list of JSON objects based on the API method.
因此,您应该将 mapping
属性作为 body
属性内的请求正文发送
一个工作示例:
const es = require('elasticsearch');
const elasticsearchClient = new es.Client({
host: 'localhost:9200',
log: 'trace',
});
elasticsearchClient.indices.create({
index: `index_created_with_map`,
body: {
mappings: {
type_name: {
// ...
},
},
}
});
关于node.js - 非法参数异常请求包含无法识别的参数: [mapping] - ElasticSearch Index Creation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42308090/
我有一个类似于以下的结构。 class A { string title; List bItem; } class B { int pric
本地流 和 远程流 两者都是“媒体流列表 ”。 本地流 包含“本地媒体流 ” 对象 但是,远程流 包含“媒体流 ” 对象 为什么差别这么大? 当我使用“本地流 “- 这个对我有用: localVide
我正在尝试将 8 列虚拟变量转换为 8 级排名的一列。 我试图用这个公式来做到这一点: =IF(OR(A1="1");"1";IF(OR(B1="1");"2";IF(OR(C1="1");"3";I
我正在使用面向对象编程在 Python 中创建一个有点复杂的棋盘游戏的实现。 我的问题是,许多这些对象应该能够与其他对象交互,即使它们不包含在其中。 例如Game是一个对象,其中包含PointTrac
有没有办法获取与 contains 语句匹配的最深元素? 基本上,如果我有嵌套的 div,我想要最后一个元素而不是父元素: Needle $("div:contains('Needle')")
出于某种原因,我无法在 Google 上找到答案!但是使用 SQL contains 函数我怎么能告诉它从字符串的开头开始,即我正在寻找等同于的全文 喜欢 'some_term%'。 我知道我可以使用
我正在尝试创建一个正则表达式来匹配具有 3 个或更多元音的字符串。 我试过这个: [aeiou]{3,} 但它仅在元音按顺序排列时才有效。有什么建议吗? 例如: 塞缪尔 -> 有效 琼 -> 无效 S
嘿所以我遇到了这样的情况,我从数据库中拉回一个客户,并通过包含的方式包含所有案例研究 return (from c in db.Clients.Include("CaseStudies")
如果关键字是子字符串,我无法弄清楚为什么这个函数不返回结果。 const string = 'cake'; const substring = 'cak'; console.log(string.in
我正在尝试将包含特定文本字符串的任何元素更改为红色。在我的示例中,我可以将子元素变为蓝色,但是我编写“替换我”行的方式有些不正确;红色不会发生变化。我注意到“contains”方法通常写为 :cont
我想问一下我是否可以要求/包含一个语法错误的文件,如果不能,则require/include返回一个值,这样我就知道所需/包含的文件存在语法错误并且不能被要求/包含? file.php语法错误 inc
我想为所有包含youtube链接的链接添加一个rel。 这就是我正在使用的东西-但它没有用。有任何想法吗? $('a [href:contains(“youtube.com”)]')。attr('re
我正在尝试在 Elasticsearch 中查询。除搜索中出现“/”外,此功能均正常运行。查询如下所示 GET styling_rules/product_line_filters/_search {
我正在开发名为eBookRepository的ASP.NET MVC应用程序,其中包含在线图书。 电子书具有自己的标题,作者等。因此,现在我正在尝试实现搜索机制。我必须使用Elasticsearch作
我已阅读Firebase Documentation并且不明白什么是 .contains()。 以下是文档中 Firebase 数据库的示例规则: { "rules": { "rooms"
我的问题是我可以给出条件[ 'BookTitleMaster.id' => $xtitid, ] 如下所示 $bbookinfs = $this->BookStockin->BookIssue->fi
我需要能够使用 | 检查模式在他们中。例如,对于像“dtest|test”这样的字符串,像 d*|*t 这样的表达式应该返回 true。 我不是正则表达式英雄,所以我只是尝试了一些事情,例如: Reg
我想创建一个正则表达式来不匹配某些单词... 我的字符:var test = "é123rr;and;ià456;or;456543" 我的正则表达式:test.match(\((?!and)(?!o
我在 XSLT 中有一个名为 variable_name 的变量,如果相关产品具有名称为 A 或 B 或两者均为 A & 的属性,我将尝试将其设置为 1 B.
您好,我想让接待员和经理能够查看工作类型和费率并随后进行更新。但是技术人员只能查看不能更新。该图是否有效? 我读到扩展用例是由发起基本用例的参与者发起的。我应该如何区分技术人员只能启动基本案例而不能启
我是一名优秀的程序员,十分优秀!