[링크] 검색 Trend
ITWeb/스크랩 2017. 12. 27. 09:58검색 Trend 를 알아보기 위한 대표 링크.
[네이버]
[구글]
'2017/12'에 해당되는 글 9건
[GC] 관련 링크 모음ITWeb/개발일반 2017. 12. 22. 12:44[GC tuning 글 모음] https://blogs.apache.org/hbase/entry/tuning_g1gc_for_your_hbase https://logonjava.blogspot.kr/2015/08/java-g1-gc-full-gc.html http://product.hubspot.com/blog/g1gc-fundamentals-lessons-from-taming-garbage-collection http://xmlandmore.blogspot.com/2014/09/g1-gc-tuning-mixed-garbage-collections.html https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/ http://www.oracle.com/technetwork/articles/java/g1gc-1984535.html http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html#G1Options http://d2.naver.com/helloworld/1329 http://d2.naver.com/helloworld/4717 http://d2.naver.com/helloworld/6043 http://d2.naver.com/helloworld/37111 http://d2.naver.com/helloworld/329631 [Elasticsearch] 실행 시 option argumentsElastic/Elasticsearch 2017. 12. 21. 14:13Elasticsearch 클래스 보시면 잘 나와 있습니다. 저는 그냥 코드만 발췌했습니다. Elasticsearch() { PID 저장) $ bin/elasticsearch -d -p ./bin/es.pid - 이와 같이 하시면 daemon 으로 실행 되면서 process id 는 bin/ 디렉토리 아래 es.pid 파일로 생성이 됩니다. [Elasticsearch] simple query 내 synonym graph 사용Elastic/Elasticsearch 2017. 12. 20. 10:11일단 나중에 잊을 수도 있어서 keep 합니다. Ref. Simple Query 사용 시 추가 되는 parameter 인데, 이 기능을 잘 활용하면 query expansion (query rewrite) 기능을 대체 할 수도 있겠다는 생각이 듭니다. 그래서 일단 기록! Synonyms The simple_query_string query supports multi-terms synonym expansion with the synonym_graph token filter. When this filter is used, the parser creates a phrase query for each multi-terms synonyms. For example, the following synonym: "ny, new york" would produce: (ny OR ("new york")) It is also possible to match multi terms synonyms with conjunctions instead: GET /_search { "query": { "simple_query_string" : { "query" : "ny city", "auto_generate_synonyms_phrase_query" : false } } } 약간의 부연 설명을 하자면, 보통 사용자가 입력한 검색어만 가지고 검색을 하는 경우는 이커머스에서는 거의 없습니다. 대부분 사용자가 입력한 검색어 + 확장검색어 형태로 질의를 하게 되는데요. 일반적으로 가장 많이 사용하는 방식이 색인 시점에 동의어를 통한 검색어 확장입니다. 이건 색인 시점이고 위 기능을 잘 활용하게 되면 질의 시점에 검색어 확장을 통한 상품 매칭을 할 수 있습니다. 저는 보통 Query Expansion 기능이라고 부르는데요. 이 작업은 Query Rewriter 라고 불리는 영역에서도 수행이 되기도 합니다. 간단한 예를 들자면) "나이키" 라는 검색어가 들어 왔을 때 이를 개인화 query expansion 기능을 적용 한다면 저 키워드를 입력한 사용자가 선호 하는게 "운동화" 였다면, 실제 검색 매칭에 사용되는 검색어는 "나이키" + "운동화" 가 되는 것입니다. 이건 단순 예시 입니다. [Lucene] LeafReaderContext 는...ITWeb/검색일반 2017. 12. 19. 18:36검색 질의가 들어 오게 되면 아래와 같은 Object 들이 생성이 되고 수행을 하게 됩니다. 개념적으로 flow 를 적어 본 것이고 자세한 건 IndexSearcher 클래스를 참고하세요. Query IndexSearcher IndexReader IndexreaderContext List<LeafReaderContext> LeafSlices 1. search(...) Query, CollectorManager 2. search(...) LeafReaderContext, Collector return TopFieldDocs 여기서 가장 중요한건 아래 부분 입니다. Query -> IndexReader -> LeafReaderContext:LeafReader (One LeafReader per Segment) [Elasticsearch] Java Security Manager 관련Elastic/Elasticsearch 2017. 12. 18. 15:45elasticsearch plugin 을 만들다 보면 보안정책 강화에 따라 permission 에러가 발생 하는 경우가 있습니다. 이럴 경우 아래 내용을 통해서 문제를 해결해 보시기 바랍니다. [Elasticsearch Java Security Manager] $ export JAVA_OPTS="${JAVA_OPTS} -Djava.security.policy=file:///path/to/my.policy` ./bin/elasticsearch # or config/jvm.options $ vi config/jvm.options -Djava.security.policy=file:///path/to/my.policy $ export JAVA_OPTS="${JAVA_OPTS} -Dsecurity.manager.enabled=false` ./bin/elasticsearch # or config/jvm.options $ vi config/jvm.options -Dsecurity.manager.enabled=false Example) my.policy # Ref. https://docs.oracle.com/javase/7/docs/technotes/guides/security/PolicyFiles.html grant { permission org.elasticsearch.script.ClassPermission "java.util.Base64"; // allow class permission org.elasticsearch.script.ClassPermission "java.util.*"; // allow package permission org.elasticsearch.script.ClassPermission "*"; // allow all (disables filtering basically) permission java.io.FilePermission "$ES_HOME/config/resource/*", "read"; // allow all files }; Example) plugin-metadata/plugin-security.policy (recommended) # Ref. https://www.elastic.co/guide/en/elasticsearch/plugins/current/plugin-authors.html#plugin-authors-jsm [Elasticsearch] copy_to mapping 예제Elastic/ElasticsearchReferences 2017. 12. 13. 16:31nested mapping 구조를 가지는 경우 copy_to 에 대한 동작 오류가 몇 건 보고 된게 있어서 코드 보다가 살짝 올려 봅니다. 공식문서는 아래 링크 참고하세요. https://www.elastic.co/guide/en/elasticsearch/reference/current/copy-to.html XContentBuilder mapping = jsonBuilder().startObject() [Java] Executors 로 간단 multithread 테스트ITWeb/개발일반 2017. 12. 12. 11:54이전 글의 참고 문서들을 먼저 보시면 좋습니다. http://jjeong.tistory.com/1296 package hello.executors; [Elasticsearch] Refresh interval while bulk requestElastic/Elasticsearch 2017. 12. 6. 14:00작업 하면서 이상한 현상이 발생을 해서 분석 하다 보니 누구나 경험 할 수 있는 것 같아 올려 봅니다. 참고문서) https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-update-settings.html https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-refresh.html 보통 bulk request 하기 전에 아래 설정을 적용하게 됩니다. index.refresh_interval: "-1" 이 설정은 해당 index 의 settings 에서 설정 합니다. 이 설정을 하게 되면 bulk request 시 refresh action 을 수행 하지 않게 되는데요. 제가 경험한 현상은 disable 했음에도 불구하고 refresh thread 수가 증가 한다는 것이였습니다. 문제는 역시 elasticsearch 에 있었던 것이 아닌 저의 잘 못 이였습니다. 이유는 제가 정의한 mapping 정보에서 dynamic field 에 따른 template 구성이 영향을 주는 것이였습니다. 결과적으로 dynamic field 설정으로 색인 시 mapping 정보가 바뀌게 되고 이를 반영 하기위해 IndexService 가 updateMetaData() 를 수행 하게 됩니다. 이 과정에서 자동으로 refresh 가 발생을 하기 때문에 bulk request 시 왜 성능이 안나오지 하지 마시고 어떤 구성을 하셨는지 부터 분석해 보시면 더 좋을 것 같습니다. |