[elixir! \ # 0033] elixir 프로젝트 에서 riak 데이터베이스 사용 하기 (2) - solr 검색 사용 하기
2747 단어 riak
solr
Solr 는 루 셀 기반 의 전체 텍스트 검색 서버 인 자바 5 개발 을 이용 한 고성능 이다.또한 이 를 확장 하여 Lucene 보다 더욱 풍부 한 조회 언어 를 제공 하 는 동시에 설정 가능 하고 확장 가능 하 며 조회 성능 을 > 최적화 시 켰 으 며 완벽 한 기능 관리 인터페이스 를 제공 하여 매우 우수한 전문 검색엔진 이다.
riak 에서 설정
riakKV 2.0 버 전 이상 에 solr 가 내장 되 어 있 습 니 다. 검색 기능 만 켜 면 됩 니 다.
vi /etc/riak/riak.conf
설치 하 다.
search = on
solr 가 접근 할 수 있 도록
/etc/hosts
파일 에 호스트 이름 (elixir 프로젝트 의 주소 와 같 음) 을 추가 해 야 합 니 다.192.168.10.83 any_name
시동 걸 기 riak.
elixir 프로젝트 에서 사용
우선
counter
유형의 검색 방법 을 시도 해 보 겠 습 니 다. "player" 라 는 bucket 이 필요 합 니 다. 각 player 의 득점 score 가 포함 되 어 있 습 니 다.지난번 에 설 정 된 elixir 프로젝트 를 시작 합 니 다.
$ iex -S mix
iex> Riak.Search.Index.put "scores"
:ok
riak 에서 Index 업데이트:
riak-admin bucket-type update counters '{"props":{"search_index":"scores"}}'
새로운 counter 추가:
iex> import RiakCounter
RiakCounter
iex> create_counter("people", "Kobe score", 10)
:ok
iex> create_counter("people", "James score", 12)
:ok
iex> change_counter("people", "Kobe score", 5)
:ok
현재, 우 리 는
"people"
bucket 에 두 개 counter
를 추 가 했 습 니 다. 우 리 는 counter
와 같은 bucket-type
색인 scores
을 추 가 했 습 니 다. 그래서 검색 코드 를 작성 하 겠 습 니 다.defmodule RiakApp.Search do
@moduledoc false
alias Riak.Search
@doc false
def search(index, query) do
{:ok, {_, result, _, num_found}} = Search.query(index, query)
{num_found, Enum.map(result, &get_value/1)}
end
defp get_value({_, data}) do
bucket = :proplists.get_value("_yz_rb", data)
type = :proplists.get_value("_yz_rt", data)
key = :proplists.get_value("_yz_rk", data)
value = List.last(data)
%{bucket: bucket, type: type, key: key, value: value}
end
end
실행 해 보기:
iex> import RiakApp.Search
RiakApp.Search
iex> search("scores", "counter:[* TO 15]")
{2,
[%{bucket: "people", key: "James score", type: "counters",
value: {"counter", "12"}},
%{bucket: "people", key: "Kobe score", type: "counters",
value: {"counter", "15"}}]}
여기까지 하 자.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Riak2.0.0 pre를 사용해 봤습니다.Riak2.0.0 pre11을 사용하여 클러스터를 구축해 보았습니다. 1. riak 설치 zsh riak에 첨부된 관리를 사용하려면 웹 인터페이스에 서버 인증서가 필요합니다 ※ 관리용 웹을 사용하지 않으면 필요 없습...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.