'classpath'에 해당되는 글 3건

  1. 2022.02.15 [Elasticsearch] Arirang classpath 미등록 시.
  2. 2019.12.02 [Elasticsearch] elasticsearch-analysis-arirang plugin 내 custom dic 적용
  3. 2015.12.05 [JAVA] executable jar 생성 시 pom.xml build 설정.

[Elasticsearch] Arirang classpath 미등록 시.

Elastic/Elasticsearch 2022. 2. 15. 10:11

arirang plugin 을 사용 하면서 사전 데이터에 대한 classpath 설정은 했는데 config/dictionary path 생성을 하지 않았을 경우 reload api 가 동작 하지 않는다고 합니다.

 

이럴 경우 config/dictionary path 생성 하고 사전 데이터 배포 후 node 를 재시작 해주셔야 하는 번거로움이 있으니 초기 설치 시 꼭 사전 데이터에 대한 배포 후 실행을 해주시면 좋을 것 같습니다.

 

혹시 같은 실수 반복 할 수도 있어서 기록합니다.

:

[Elasticsearch] elasticsearch-analysis-arirang plugin 내 custom dic 적용

Elastic/Elasticsearch 2019. 12. 2. 17:28

DM 주신 분이 계셔서 해결 방법을 올려 드립니다.

먼저 아래 글을 읽어 보시면 이해 하시는데 도움이 되실 겁니다.

 

이전 글)

https://jjeong.tistory.com/1281

 

작성 시점의 글은 elasticsearch 5.x 대 버전이라 7.x 에서는 환경 설정 방법이 변경이 되었습니다.

그래서 이전 문서에서 이야기 하는 방법으로 classpath 설정을 하시면 동작 하지 않을 수 있습니다. 

 

7.x 에서는 아래와 같이 설정 하신 후 custom dic 을 적용 하시면 사용 하실 수 있습니다.

 

수정 할 파일)

$ bin/elasticsearch-env

- 5.x에서는 elasticsearch.in.sh 파일을 수정 했으나 7.x 에서는 변경이 되었습니다.

 

수정 내용)

ES_CLASSPATH="$ES_HOME/lib/*"

- 이 위치에 사전 파일에 대한 path 설정을 하시면 안됩니다.

- 이유는 ES_PATH_CONF 환경 변수에 대한 설정이 되어 있지 않기 때문에 인식을 못합니다.

- 아래와 같이 ES_CLASSPATH 를 라인에 추가해 주시면서 dictionary path 를 추가 하셔야 합니다.

 

ES_CLASSPATH="$ES_CLASSPATH:$ES_HOME/config/dictionary"

# check the Java version
"$JAVA" -cp "$ES_CLASSPATH" org.elasticsearch.tools.java_version_checker.JavaVersionChecker

 

이와 같이 설정을 맞쳤다면 elasitcsearch 를 실행 시켜서 정상적으로 형태소 분석이 이루어 지는지 확인 하시면 됩니다.

인명 사전 정보가 없기 때문에 본인 이름을 넣어서 테스트 해보시면 됩니다.

 

:

[JAVA] executable jar 생성 시 pom.xml build 설정.

ITWeb/개발일반 2015. 12. 5. 20:40

맨날 잊어버리기 때문에 별거 아니지만 그냥 기록 합니다.


아래 설정은 executable jar 를 만들때 필요한 dependency jar 와 classpath 를 함께 구성해 주기 위해서 사용을 합니다.

자세한 내용은 링크 참고 하시면 됩니다.


[Apache Maven Archiver Examples Classpath]


[build property example]

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<includeScope>compile</includeScope>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<index>false</index>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>MainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<!-- Ignore/Execute plugin execution -->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<!-- copy-dependency plugin -->
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<versionRange>[1.0.0,)</versionRange>
<goals>
<goal>copy-dependencies</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>


: