140 lines
4.4 KiB
Erlang
140 lines
4.4 KiB
Erlang
POST mainindex/_update_by_query
|
||
{
|
||
"script": {
|
||
"source": "ctx._source.allwords = ctx._source.allwords.replace('–', ';');ctx._source.allwords = ctx._source.allwords.replace('–', ';');ctx._source.allwords = ctx._source.allwords.replace('،', ';');ctx._source.allwords = ctx._source.allwords.replace(',', ';');",
|
||
"lang": "painless"
|
||
},
|
||
"query": {
|
||
"bool": {
|
||
"must": [
|
||
{
|
||
"exists": {
|
||
"field":"allwords"
|
||
}
|
||
}
|
||
],
|
||
"must_not": [
|
||
{
|
||
"bool": {
|
||
"should": [
|
||
{
|
||
"term": {
|
||
"allwords.keyword": {
|
||
"value": ""
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"term": {
|
||
"allwords.keyword": {
|
||
"value": ";"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
// query:
|
||
// گزینه اول: فیلد allwords باید وجود داشته باشد
|
||
// گزینه دوم: allwords.keyword نباید خالی باشد یا ; باشد
|
||
// Script:
|
||
// جایگزینی کاراکتر های - و , و ، با ;
|
||
// نتیحه: هر کجا که فیلد allwords وجود داشته باشد و خالی یا ; نباشد، کاراکتر هایی در آن ریپلیس خواهند شد
|
||
|
||
|
||
POST my-index/_update_by_query
|
||
{
|
||
"script": {
|
||
"source": "ctx._source.color.add('pink') ",
|
||
"lang": "painless"
|
||
},
|
||
"query": {
|
||
"bool": {
|
||
"must": [
|
||
{
|
||
"exists": {
|
||
"field": "color"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
// add To a array
|
||
POST my-index/1/_update_by_query
|
||
{
|
||
"script": {
|
||
"source": "ctx._source.array.add(['entity_id' :1, 'entity_title' : 'Title,'realation_type' : 'realation_type']); ",
|
||
"lang": "painless"
|
||
}
|
||
}
|
||
// ساخت آرای ای از آبجکت ها
|
||
|
||
|
||
POST my-index/1/_update_by_query
|
||
{
|
||
"script": {
|
||
"source": "try {String year = ''; if(ctx._source.eb_year != null) year =ctx._source.eb_year.trim().replace('/', '').replace('هـ', ''); int d = Integer.parseInt(year);ctx._source.eb_year = d;} catch (NumberFormatException nfe) {ctx._source.remove('eb_year'); }",
|
||
"lang": "painless"
|
||
}
|
||
}
|
||
// این اسکریپت در صورتی که فیلد eb_year int نباشد آن را حذف میکند
|
||
|
||
|
||
|
||
POST mainindex/_update_by_query
|
||
{
|
||
"script": {
|
||
"source": " String allwords = ctx._source.allwords; def a_chars = allwords.toCharArray(); int chars_len = a_chars.length; ArrayList result = new ArrayList(); int last_dot = chars_len; for(int i = chars_len -1; i>=-1; i--) { if (i == -1 || a_chars[i] == (char) ';' ){ String t1 = allwords.substring(i+ 1, last_dot).trim(); if(t1 != '') result.add(t1); last_dot = i; } } ctx._source.tags = result; ",
|
||
"lang": "painless"
|
||
},
|
||
"query": {
|
||
"bool": {
|
||
"must": [
|
||
{
|
||
"exists": {
|
||
"field":"allwords"
|
||
}
|
||
}
|
||
],
|
||
"must_not": [
|
||
{
|
||
"bool": {
|
||
"should": [
|
||
{
|
||
"term": {
|
||
"allwords.keyword": {
|
||
"value": ""
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"term": {
|
||
"allwords.keyword": {
|
||
"value": ";"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
}
|
||
]
|
||
}
|
||
}
|
||
|
||
|
||
}
|
||
// اگر فیلد allwords وجود داشته باشد، اسکریپت اجرا میشود
|
||
// String allwords = ctx._source.allwords; def a_chars = allwords.toCharArray(); int chars_len = a_chars.length;
|
||
// chars_len = تعداد کاراکتر های allwords
|
||
// ArrayList result = new ArrayList(); int last_dot = chars_len;
|
||
// result --> یک آرایه
|
||
// for(int i = chars_len -1; i>=-1; i--) { if (i == -1 || a_chars[i] == (char) ';' ){String t1 = allwords.substring(i+ 1, last_dot).trim(); if(t1 != '') result.add(t1);last_dot = i;
|
||
// این کد allwords را از آخر به اول میخواند و با ; اسپلیت میکند و در آرایه result میریزد
|
||
// البته میتوان از
|
||
// a_chars,split(';')
|
||
// نیز استفاده کرد |