[Arirang] 아리랑 사용 시 startOffset, endOffset 역전 현상

ITWeb/검색일반 2021. 11. 10. 14:24

아리랑 형태소 분석기 에서 synonym filter 사용을 하지 않았는데도 offset 역전 현상이 발생 할 경우가 있습니다.
보통은 synonym filter 로 인해서 발생 하는 경우가 있는데요.
total.dic, extension.dic 에 등록된 단어들이 띄어쓰기 없이 복합명사 처럼 작성이 되었을 경우 간혹 발생 할 수 있습니다.

예)

Input Text : 전문의사시대
Dictionary Text : 전문, 전문의, 의사, 사시, 시대
Analyzed Text : 전문, 전문의, 사시, 의사, 시대

복합명사 사전인 compound.txt 에는 등록이 되어 있지 않습니다.
전문의사시대:전문,의사,시대:0000
로 등록을 하면 원하는 결과를 얻을 수 있고 오류도 없어집니다.

 

에러 유형)

startOffset must be non-negative, and endOffset must be >= startOffset, and offsets must not go backwards ...중략...

 

:

[Shell] sed 명령어 예제

ITWeb/개발일반 2021. 11. 10. 13:55

sed - stream editor for filtering and transforming text

예) 파일 내부 컨텐츠 내용을 변경
$ sed -i "s/FIND-VAR/REPLACE-VAR/g" FILE

:

[CURL] proxy 설정에 따른 ERR_ACCESS_DENIED 회피.

ITWeb/개발일반 2021. 10. 28. 15:47

뭐 회피라고 하기도 그렇지만 실행 하는 장비에 proxy 설정이 되어 있어서 발생 하는 문제 입니다.

proxy 를 거치지 않도록 실행 시키면 관련 에러는 없어 질 수 있습니다.

(제 경우를 기록 한거라 다른 환경이면 안될 수도 있으니 참고하세요.)

 

$ curl --noproxy '*' -X POST http://user:token@localhost:8080/job/task/build

 

:

[Elasticsearch] Term vs Terms Query

Elastic/Elasticsearch 2021. 10. 27. 16:14

보셔야 하는 클래스는

- TermQueryBuilder

- TermsQueryBuilder

입니다.

 

두 Query 의 큰 차이는 단독으로 사용 되었을 때 Scoring 이 어떻게 되느냐 인데요.

Term 은 Score 계산이 되어서 나오고 Terms 는 Constant Score Query 처럼 1.0 으로 나온다는 것입니다.

 

코드를 좀 더 따라 가다 보면 

- MapperFieldType

클래스 내 Query API 들에 대한 Interface 나 Implement 코드를 확인해 보실 수 있습니다.

 

아래는 Terms Query 에 대한 코드를 가져온 내용입니다.

    /** Build a constant-scoring query that matches all values. The default implementation uses a
     * {@link ConstantScoreQuery} around a {@link BooleanQuery} whose {@link Occur#SHOULD} clauses
     * are generated with {@link #termQuery}. */
    public Query termsQuery(Collection<?> values, @Nullable SearchExecutionContext context) {
        BooleanQuery.Builder builder = new BooleanQuery.Builder();
        for (Object value : values) {
            builder.add(termQuery(value, context), Occur.SHOULD);
        }
        return new ConstantScoreQuery(builder.build());
    }

뭐 혼자 기억 하기 위한 기록 이라서 이 정도까지만 기록해 두겠습니다.

 

:

[Postman] Set Array Variable.

ITWeb/개발일반 2021. 10. 27. 12:36

참고문서)

https://learning.postman.com/docs/sending-requests/variables/

 

Pre-request Script

pm.environment.set("KEYWORDS", "삼성", "전자", "삼성전자")

 

Body

{
  "query": {
    "terms": {
      "keywords": [
        "{{KEYWORDS}}"
      ]
    }
  }
}

 Array 로 설정을 해야 할 일이 있어서 또 기억 못할까봐 기록해 봅니다.

: