[동영상] 고객을 위한 가치 창조의 중요성
기업의 구성원은 내부고객이 아닌 최종소비자의 관점에서 생각하고 판단하는 것이 중요하다.
그렇지않은 경우, 이런 광고가 나올 수 있다.
(재미있네…)
[solr] Spatial (Local) Search 이용하기
초보 검색개발자도 Solr를 사용하면 정말 쉽게 검색서비스를 구축할 수 있다.
그중에 최근에 local search를 개발하기 위해서 반경 및 지도의 area 검색을 구현해보았다.
먼 저 좌표(WGS84) 필드의 이름이 “latlon”이라면, schema.xml에 좌표필드를 다음과 같이 추가한다. 그리고 Solr Document를 다음과 같이 생성해서 색인한다. (latlon_0_coordinates는 위도, latlon_1_coordinate는 경도이다.)
<field name=”latlon”>37.65245087571899,126.7834223449347</field>
<field name=”latlon_0_coordinate”>37.65245087571899</field>
<field name=”latlon_1_coordinate”>126.7834223449347</field>
좌표 검색은 중심점을 이용한 반경 검색과 화면의 사각형 지도의 영역 검색 이렇게 2가지 방법 방법이 있을 수 있다.
- 반 경검색에 대한 검색 파라미터(pt는 중심좌표, sfield는 필드명, d는 Km(?)를 의미)는 다음과 같다. q=*:*&fq={!geofilt pt=37.5197089%2C127.0523981 sfield=latlon d=5}
- 영역에 대한 검색 파라미터는 다음과 같다. q=*:*&fq=latlon:[37.503045,127.0316977 TO 37.5389259,127.077175]
[Solr] Suggest 기능 이용하기
1. 설정 경로로 이동한다.
#> cd $SOLR_HOME
2. Suggest 사용을 위한 Component와 Handler를 추가한다.
$SOLR_HOME/solr/collection1/conf/Solrconfig.xml에 다음과 같이 searchComponent와 requestHandler 추가
<searchComponent name=”suggest”>
<lst name=”spellchecker”>
<str name=”name”>suggest</str>
<str name=”classname”>org.apache.solr.spelling.suggest.Suggester</str>
<str name=”lookupImpl”>org.apache.solr.spelling.suggest.tst.TSTLookup</str>
<str name=”field”>name_autocomplete</str>
</lst>
</searchComponent>
<requestHandler name=”/suggest”>
<lst name=”defaults”>
<str name=”spellcheck”>true</str>
<str name=”spellcheck.dictionary”>suggest</str>
<str name=”spellcheck.count”>10</str>
</lst>
<arr name=”components”>
<str>suggest</str>
</arr>
</requestHandler>
3. schema.xml에 data type과 적용할 필드를 등록한다.
<fieldType name=”text_auto” positionIncrementGap=”100″>
<analyzer>
<tokenizer/>
<filter generateWordParts=”1″ generateNumberParts=”1″ catenateWords=”1″ catenateNumbers=”1″ catenate
All=”0″ splitOnCaseChange=”1″/>
<filter/>
</analyzer>
</fieldType>
<field name=”name” type=”text” indexed=”true” stored=”true” multiValued=”false” />
<field name=”name_autocomplete” type=”text_auto” indexed=”true” stored=”true” multiValued=”false” />
<copyField source=”name” dest=”name_autocomplete”/>
4. 색인 후, 다음과 같이 색인을 빌드한다.
/suggest?spellcheck.build=true
5. 다음과 같이 Suggest 쿼리를 날려 확인해본다.
/suggest?q=har
