Elasticsearch 의 script 사용

3599 단어 elasticsearchscript
</pre><p class="p1"><span class="s1"> ES 1.4.3  , inline script       ,      file script   。</span></p><p class="p1"><span class="s1"></span></p><pre code_snippet_id="1661228" snippet_file_name="blog_20160425_2_5419351" name="code" class="python">{"query":{
    "term": {
      "content": "  "
    }
  },
  "script_fields": {
    "test1": {
      "script": "doc['content']+'hello'"
    }
  }
}

다음 오류 로그 가 나타 납 니 다:
nested: ScriptException[scripts of type [inline], operation [search] and lang [groovy] are disabled
열 려 면 config/elasticsearch.yml 에 다음 설정 을 추가 해 야 합 니 다.
script.inline:true
script.indexed:true
ES 를 다시 시작 하면 효력 이 발생 합 니 다.다음 출력 을 가 져 옵 니 다:
또한,여러 개의 node 가 있 으 면 모든 node 의 elasticsearch.yml 에 상기 설정 을 추가 해 야 합 니 다.그렇지 않 으 면 script 을 사용 할 수 없습니다.
{ "took": 479, "timed_out": false, "_shards": { "total": 5, "successful": 5, "failed": 0 }, 
 "hits": { "total": 2, "max_score": 1.5, "hits": [ 
 { "_index": "testik", "_type": "typeik", "_id": "1", "_score": 1.5,
   "fields":{"test 1":["중국","아시아","공격","혐의","용의자","총","이미","삼나무","총","총","로","로스앤젤레스","범","남자","기","자수","계", 
"당","영사","영사관","관","주","hello"]} 
  }, 
{ "_index": "testik", "_type": "typeik", "_id": "3", "_score": 0.53699243, 
 "fields":{"test 1":["1","중국","한 중","돌격","충돌","평균","단추","매일","물고기","어선","돌기","배","배","경찰","조사","한","hello"]} 
 } ] } }
또한 doc['field']가 얻 은 analyzed 이후 의 단어 결 과 를 알 수 있다.예 를 들 어 doc['field'][1]은'아'와'중국'을 얻 을 수 있다.만약 notanalyzed,원 가 를 얻 을 수 있 습 니 다.
그리고source.field 는 단어 가 있 든 없 든 임의의 부분 을 얻 을 수 있 습 니 다.
{
  "query":{
    "term": {
        "content": "  "
    }
  }, 
  "script_fields": {
    "test1": {
      "script": "_source.content+'hello'"
    }
  }
}

얻 은 결 과 는 다음 과 같다.
{
  "took": 7,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "hits": {
    "total": 2,
    "max_score": 1.5,
    "hits": [
      {
        "_index": "testik",
        "_type": "typeik",
        "_id": "1",
        "_score": 1.5,
        "fields": {
          "test1": [
            "                      hello"
          ]
        }
      },
      {
        "_index": "testik",
        "_type": "typeik",
        "_id": "3",
        "_score": 0.53699243,
        "fields": {
          "test1": [
            "        :       1     hello"
          ]
        }
      }
    ]
  }
}

좋은 웹페이지 즐겨찾기