전역 검색

 

전역 검색

 

 

전역 검색에서 검색을 실행하면 기본 검색 화면이 표시 됩니다.

  • 기본 검색 : 모듈별 검색 결과를 한번에 표시 합니다.
  • 고급 검색
    • 모듈별 검색 결과를 각 모듈별로 표시 합니다.
    • “검색” 버튼 우측에 있는 “고급” 링크를 선택하여 검색할 모듈과 결과의 표시 순서를 설정 합니다.

 

전역 검색 설정

“관리 > 시스템 > 전역 검색” 메뉴에서 전역 검색에 사용할 모듈을 선택 합니다.

 

 

전역 검색에서 사용할 모듈을 지정하고 검색 순서를 설정 합니다.

  • 활성 모듈 : 전역 검색에서 사용할 모듈
  • 비활성 모듈 : 전역 검색에서 사용하지 않을 모듈

 

[ElasticSearch] Solr를 위한 curl의 간단 윈도우 버전

 
Linux에서는 curl을 사용하여 Browser가 아닌 command line 환경에서 URL을 호출할 수 있습니다.
 
Windows에 설치된 Solr에서 테스트를 하기 위해 당장 필요한 기능만 구현하여 purl을 만들어 습니다.
 
MultiPart 형태로 첨부 파일 처리를 하기 위해서 HttpClient를 사용하여 작성을 해 보았는데
막상 사용할 일이 없어서
HttpURLConnection을 사용하여 처리를 하였습니다.
 
Purl.java의 인자 정보
  – server ~   : 호출할 url을 명시 (예, http://localhost:8983/solr/search001/update?commit=true)
  -d ~           : Post 방식으로 전달할 데이터 명시, "@파일명" 형태로 파일 내용을 전달할 수 있습니다.
 
 
 
 
 
파일

 

 

 

[ElasticSearch] Windows에서 Solr 실행

 
 
  • Solr 다운로드 사이트에서 solr-4.9.0.zip 파일을 다운로드 합니다. 다운로드 받은 파일로 c:/appl/solr/ 폴더를 생성 합니다.
  • 아래 명령어를 사용하여 Solr를 실행 합니다.
cd c:/appl/solr/example
java -jar start.jar
  • 설정 파일 정보
  • etc/jetty.xml : Jetty 설정 파일
  • webapps/solr.war : Application 배포 파일
  • solr-webapp/webapp
  • contexts/solr-jetty-context.xml : Application 설정 파일
  • etc/webdefault.xml
  • lib/ : Jetty 라이브러리
  • logs/ : 로그 폴더
  • resources/log4j.properties : 설정 파일
  • solr/collection1/ : collection1 Solr Core 폴더
 
파일

 

 

 

 

 

 

[ElasticSearch] Lucene Indexing

 
 
Lucene Indexing 요약 자료 입니다.
 
 
 
 
 
파일

 

 

 
 

[ElasticSearch] Search API

 
 
ElasticSearch에서 가장 중요한 부분은 REST API를 이해 하는 것 입니다.
 
REST API를 하려면 Query DSL을 알아야 합니다.
 
 
다음은 REST API에서도 가장 기본이 되는 Search API의 샘플 query 입니다.
 
 
 
  • REST -XGET request URI
curl 'node201.hadoop.com:9200/customer/_search?q=*&pretty'
  • REST request body
curl -XGET 'node201.hadoop.com:9200/customer/_search?pretty' -d '

{

  "query": { "match_all": {} },

  "sort": { "balance": { "order": "desc" } },   #--- 정렬

  "from": 10,                          #--- 10번째까지 ski
p
  "size": 10,                          #--- 10개의 데이터 반환

  "_source": [ "account_number", "balance" ]   #--- 반환할 필드 지정

}'
  • match_all query
curl -XGET 'node201.hadoop.com:9200/customer/_search?pretty' -d '

{

  "query": { "match_all": {} }

}'
  • match query
curl -XPOST 'node201.hadoop.com:9200/customer/_search?pretty' -d '

{

  "query": { "match": { "account_number": 20 } }

}'
  • match_phrase query
curl -XPOST 'node201.hadoop.com:9200/customer/_search?pretty' -d '

{

  "query": { "match_phrase": { "address": "mill lane" } }

}'
  • bool query
curl -XPOST 'node201.hadoop.com:9200/customer/_search?pretty' -d '

{

  "query": {pp
    "bool": {

      #--- "must" : AND, "should" : OR, "must_not" : NOT (~ AND ~)

      "must": [

        { "match": { "address": "mill" } },

        { "match": { "address": "lane" } }

      ],

     "must_not": [

        { "match": { "state": "ID" } }

     ]

    }

  }

}'
  • filtered query
curl -XPOST 'node201.hadoop.com:9200/customer/_search?pretty' -d '

{

  "query": {

    "filtered": {

      "query": { "match_all": {} },

      "filter": {

        "range": {                     #--- range filter

          "balance": {

            "gte": 20000,

            "lte": 30000

          }

        }

      }

    }

  }

}'
  • aggregation
curl -XPOST 'node201.hadoop.com:9200/customer/_search?pretty' -d '

{

  "size": 0,

  "aggs": {

    "group_by_state": {                #--- count(state) 반환

      "terms": {

        "field": "state"

      }

    }

  }

}'



curl -XPOST 'node201.hadoop.com:9200/customer/_search?pretty' -d '

{

  "size": 0,

  "aggs": {

    "group_by_state": {                #--- state별 avg(balance) 반환

      "terms": {

        "field": "state",

        "order": {

          "average_balance": "desc"

        }

      },

      "aggs": {

        "average_balance": {

          "avg": {

            "field": "balance"

          }

        }

      }

    }

  }

}'


 

 

파일

 
 

[ElasticSearch] 관련 오픈소스

 

 
ElasticSearch Environment.png
 
파일
 
 

 

CentOS에서 ElasticSearch 설치

 
 
ElasticSearch의 최신 버전은 1.2.0으로 JDK 1.7 이상을 필요로 합니다.
 
 
JDK 1.7 설치
 
 
 
yum -y install java-1.7.0-openjdk
java -version

 
 
ElasticSearch 1.2.0 설치
 
ElasticeSearch는 보안상 hduser:hdgroup 사용자가 사용할 수 있도록 설치를 합니다.
 
 
 
 
 
 
 
cd install
wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.2.0.tar.gz
 
tar -xvzf elasticsearch-1.2.0.tar.gz
chown -R hduser:hdgroup elasticsearch-1.2.0
mv elasticsearch-1.2.0 /nas/appl/elasticsearch

 
 
hduser 사용자 환경 설정
 
 
vi  ~hduser/.bash_profile 명령어로 설정 파일을 수정 합니다.

 
 
 
export ELASTICSEARCH_HOME=/nas/appl/elasticsearch
export PATH=$PATH:$ELASTICSEARCH_HOME/bin

 

 
ElasticSearch 1.2.0 환경 설정
 
데이터와 로그 저장용 폴더를 생성 합니다.
 
 
 
 
 
cd /nas/appl/elasticsearch
mkdir data
mkdir logs
chown hduser:hdgroup data logs

 
vi /nas/appl/elasticsearch/config/elasticsearch.yml 설정 파일을 수정 합니다.
 
 
 
 
 
 
 
 
cluster.name: elasticsearch
node.name: "node201"
path.data: /nas/appl/elasticsearch/data
path.logs: /nas/appl/elasticsearch/logs
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: [“node201”]
bootstrap.mlockall: true

 
 
ElasticSearch 서비스 실행 및 확인
 
데이터와 로그 저장용 폴더를 생성 합니다.
 
 
 
 
su – hduserelasticsearch #— Foreground로 실행
elasticsearch -d #— Daemon으로 실행
curl localhost:9200 #— 서비스 확인

 
아래와 같이 브라우저로 접속하여 서비스를 확인할 수 있습니다.
    http://node201.hadoop.com:9200/    
    http://node201.hadoop.com:9200/_status

 
 
 
 
 
파일