ใฏใใใซ
ใใใซใกใฏrilmayerใงใใ
ใใฎ่จไบใฏใขใใใณใใซใฌใณใใผใSearch&Discovery ๅ
จ้จไฟบใ12ๆฅ็ฎใฎ่จไบใจใชใใพใใ๏ผๅฏใใพใงใใปใปใป
ไปๆฅใฏๅฝ็ฃใฎๅ
จๆๆค็ดขใจใณใธใณใงใใGroongaใฎ็ดนไปใใใใใจๆใใพใใ
ๅๅใฎ่จไบใง็ดนไปใใๅ
จไฝๅใฎใใกใฎๆค็ดขใจใณใธใณใฎไธไพใงใใญใ
Groongaใจใฏ๏ผ
่ปข็ฝฎ็ดขๅผใ็จใใ้ซ้ใป้ซ็ฒพๅบฆใชๅ
จๆๆค็ดขใจใณใธใณใงใใ
ใซใฉใ ในใใขใๆใคๅๆๅใฎใใผใฟใใผในใจใใฆใฎๅด้ขใๆใฃใฆใใใใใงใ้่จ็ญใซใไฝฟใใใใใใงใใ
ๆฅๆฌ่ชใฎใใผใฏใใคใบใTF-IDFใซใใในใณใขใชใณใฐ๏ผใฝใผใ๏ผใซใๅฏพๅฟใใฆใใใๆค็ดขใจใณใธใณใจใใฆๅฟ
่ฆใชๆฉ่ฝใไธ้ใๆไพใใใฆใใใใๅฎใตใผใในใงๆค็ดขใจใณใธใณใจใใฆๆก็จใใฆใใไผๆฅญใใใใพใใ
ๆค็ดขใจใณใธใณใจใใฆใฎๅบๆฌ็ใชๆไฝใ่ฉฆใใฆใฟใ
Groongaใคใณในใใผใซใจ็ซใกไธใ
ใใกใใง่ฒใ
ใชๆนๆณใ็ดนไปใใฆใใใพใใใไปๅใฏใญใผใซใซ็ฐๅข๏ผOSX๏ผใฎDockerใง่ฉฆใใฆใฟใพใใ
Docker Imageใใฃใกใ่ปฝใใฆใณใฃใใ๏ผ
ใใฎDocker ImageใฏใใใฉใซใใงMecabใจใใๅ
ฅใฃใฆใใฎใงใใใฎใพใพไฝฟใใฆไพฟๅฉใงใใญใ
ใจใๆใฃใใฎใงใใๅฎ้ใซๅณใใๆใใงไฝฟใใใใฃใใฎใงใไปฅไธใฎใใใชDockerfileใไฝๆใใฆใตใผใใผใขใผใใง็ซใกไธใใพใใ
FROM ubuntu:18.04
RUN apt update && \
apt install -y
RUN apt-get -y install groonga \
groonga-tokenizer-mecab \
groonga-server-http
EXPOSE 10041
CMD ["service", "groonga-httpd", "start"]
ไปฅไธใฎใใใซbuildใใฆrunใใใฐ็ซใกไธใใใพใใ
# build
docker build -t groonga .
# run
# ไธญใซๅ
ฅใๅ ดๅ
docker run -i -t -p 10041:10041 groonga bash
# ใใผใขใณใจใใฆ่ตทๅใใๅ ดๅ
docker run -t -d -p 10041:10041 groonga
ใจใใใใจใงใ http://localhost:10041/ ใซใขใฏใปในใใใจไปฅไธใฎใใใชใณใณใฝใผใซใซใขใฏใปในใงใใพใใไพฟๅฉใ
ใใผใใซใฎไฝๆใปใใผใฟใฎๆๅ ฅใปๆค็ดข
groongaใฏใใใพใงใๅ
จๆๆค็ดขใใงใใใใผใฟใใผในใใชใฎใงใใใผใใซไฝๆใใฆๅฉ็จใใๅฝขใซใชใใพใใ
Elasticsearchใ ใจindexใจ่จใฃใใใSolrใ ใจcoreใจ่จใฃใใใใพใใ
ไปๅใฏๆไฝในใฏใชใใใPythonใงๆธใใฆใฟใพใใใ๏ผๅ
ฌๅผใฏRubyๆจใใฃใฝใๆฐใใใพใใใปใปใป๏ผ
groongaใงใฏๆฐใใซใซใฉใ ใไฝๆใใ้ใซใใคใณใใใฏในๅใใจใใๅใๆๅฎใใใใจใซใใใใใฎใซใฉใ ใซๅฏพใใฆๅ
จๆๆค็ดขใ่กใใใจใใงใใพใใ
import requests
import json
# ในใใผใฟในๅๅพ
base_url = 'http://localhost:10041'
url = base_url + '/d/status'
res = requests.get(url)
json.loads(res.content) # => [[0,1576165601.392383,0.0001587867736816406],{"alloc_count":309,"starttime":1576110346,"start_time":1576110346,"uptime":55255,"version":"8.0.0","n_queries":0,"cache_hit_rate":0.0,"command_version":1,"default_command_version":1,"max_command_version":3}]
ๅ จๆๆค็ดข็จใฎใใผใใซใจใซใฉใ ่ฟฝๅ
ใใใgroongaใฎใใคใณใใซใชใใใจๆใใพใใใ้ๅธธใฎใใผใใซใไฝๆใใๅพใซๅ
จๆๆค็ดข็จใฎใใผใใซใจใซใฉใ ใไฝๆใใกใคใณใฎใใผใใซใซ็ดไปใใฆไฝฟใใพใใ
ใใใงใฏไปฎใซใขใคใใซๅใจใใฎ่ชฌๆใๅซใพใใฆใใใใผใใซใไฝๆใใฆใฟใใใจใซใใพใใ
# Idolใใผใใซไฝๆ
url = base_url + '/d/table_create'
payload = {
'name': 'MyFavoriteIdols', # ใใผใใซๅ
'flags': 'TABLE_HASH_KEY',
'key_type': 'ShortText'
}
headers = {'content-type': 'application/json'}
res = requests.get(url, params=payload, headers=headers)
# ใซใฉใ ไฝๆ
column_settings = [
{
'table': 'MyFavoriteIdols',
'name': 'idol_name',
'flags': 'COLUMN_SCALAR',
'type': 'Text'
},
{
'table': 'MyFavoriteIdols',
'name': 'description',
'flags': 'COLUMN_SCALAR',
'type': 'Text'
}
]
url = base_url + '/d/column_create'
headers = {'content-type': 'application/json'}
for column_setting in column_settings:
res = requests.get(url, params=column_setting, headers=headers)
# ่ชๅฝ่กจไฝๆ
url = base_url + '/d/table_create'
payload = {
'name': 'Terms', # ใใผใใซๅ
'flags': 'TABLE_PAT_KEY', # ไธปใญใผใใใใชใทใขๆจใซๆ ผ็ด
'key_type': 'ShortText', # flagใๆๅฎใใๅ ดๅใซๅฟ
่ฆ
'default_tokenizer': 'TokenMecab', # MeCabใซใใใใผใฏใใคใบ
'normalizer': 'NormalizerAuto' # ็ตใฟ่พผใฟใฎใใผใใฉใคใถใผ http://groonga.org/ja/docs/reference/normalizers/normalizer_auto.html
}
headers = {'content-type': 'application/json'}
res = requests.get(url, params=payload, headers=headers)
# ใซใฉใ ่ฟฝๅ
column_setting = {
'table': 'Terms',
'name': 'idol_description',
'flags': 'COLUMN_INDEX|WITH_POSITION',
'type': 'MyFavoriteIdols',
'source': 'description'
}
url = base_url + '/d/column_create'
headers = {'content-type': 'application/json'}
res = requests.get(url, params=column_setting, headers=headers)
ใใผใฟใฎ่ฟฝๅ
# descriptionใฏwikipediaใฎ่ฉฒๅฝใใผใธใใๆๅ
# https://ja.wikipedia.org/wiki/AmiinA
# https://ja.wikipedia.org/wiki/%E3%83%BB%E3%83%BB%E3%83%BB%E3%83%BB%E3%83%BB%E3%83%BB%E3%83%BB%E3%83%BB%E3%83%BB
# https://ja.wikipedia.org/wiki/%E3%83%A4%E3%81%AA%E3%81%93%E3%81%A8%E3%81%9D%E3%81%A3%E3%81%A8%E3%83%9F%E3%83%A5%E3%83%BC%E3%83%88
# https://ja.wikipedia.org/wiki/BEYOOOOONDS
# https://ja.wikipedia.org/wiki/TipToe.
payload = [
{
"_key": "amiina",
"name": "amiinA",
"description": '้่ชใใใณโใใใใฎ่ชญ่
ใขใใซใงใใฃใ[1]amiใจใmiinaใฎ2ไบบใงใ ใใฟใใชใใ็ตๆใใใใฟใใชใใฏ2ไบบใฎๅๅใใใฟใใจใใฟใใชใใๆใๅใใใใใฎใ\n\n2012ๅนด8ๆใๅฝๆๅใไบๅๆใฎMYM Melodyใๅบๆผใใใคใใณใใงๅๆซ้ฒใ\n\n็ตๆๅฝๅใฏใใใใใใฏใญใผใใผZใAKB48ใชใฉใฎใซใใผใ ใฃใใใใชใชใธใใซๆฒใไฝใ้ใซใใญใใฅใผใตใผใจใใฆๆฅฝๆฒใฏใชใจใคใใฃใใใผใ ใปnanolineใฎ้ฝ่คๅทไธใๅ ใใ[2]ใ\n\n2013ๅนด8ๆใๅใฎใทใณใฐใซใ1โ2โ3โ/ใใคใณใใใฉใใซใใ็บๅฃฒใใขใผใใฃในใ่กจ่จใใขใซใใกใใใใฎใamiinaใใจใใใ\n\n2014ๅนด4ๆใซๅ็ฐ่ฑชใใWith youใ๏ผbayfm๏ผ[3]ใงใ5ๆใซๅๆณขไธๆตทใใคใณใฟใผใใใๆพ้ใๅๆณขไธๆตทใฎใขใคใใซไธๅๅ
ญๆฟใ[4]ใงใใใคใณใใใฉใใซใใ็ดนไปใใใใจใใใใใฎ้ ใใ้ณๆฅฝใซ่ฉณใใใขใคใใซใใกใณใใๅๅฟใๆฅใใใใซใชใใ้ฝ่คใฏใ้ณๆฅฝ็ใซ่ช็ฑใซๆปใใฆใใใใฎใงใฏใชใใใใจๆใใใใซใชใฃใใจ่ชใฃใฆใใ[5]ใ\n\n2016ๅนด2ๆ13ๆฅใฎLIVEใใใฃใฆmiinaใ่ฑ้[6]ใๆดปๅไผๆญขใจใชใใ\n\n2016ๅนด3ๆ22ๆฅใในใฟใใใฎTwitterใงใ่กจ่จใใamiinAใใซๅคๆดใใๆฐใกใณใใผใๅ ใๆดปๅใๅ้ใใใใจใ็บ่กจ[7]ใ 5ๆ3ๆฅใๆธ่ฐทWWWใง้ๅฌใใใใWonderTraveller!!! act.4ใใงใๆฐใกใณใใผmiyuใๅ ๅ
ฅใใamiinAใจใใฆๅๅงๅ[8]ใ\n\n2016ๅนด12ๆ28ๆฅใฎใฉใคใใใใกใmiyuใฎ้ซๆ กๅ้จใฎใใๆดปๅใไธๆไผๆญข[9]ใ\n\n2017ๅนด4ๆ15ๆฅใใใฉใคใๆดปๅใๅ้[10]ใ\n\nๆฐ็amiinAใฏใใawake mind into ideal naked Avalonใใฎ็ฅใ\n'
},
{
"_key": "dots",
"name": "ใปใปใปใปใปใปใปใปใป",
"description": '2016ๅนด4ๆใซ้ๅฌใใใใใๅฅณใฎๅญใฎๆฑไบฌใใคใใใ!!ใใใญใธใงใฏใ ใขใคใใซใชใผใใฃใทใงใณใใง้ธใฐใใใกใณใใผใซใใใฆใใใ[1][2]ใ\n\nใณใณใปใใใฏใใในใใปใใฑใขใณGO!ๆไปฃใฎใขใคใใซใใๅธธใซ็บใใ(ใพใจใใ)ใขใคใใซใ[3]ใ้ฝๅธใฎๅนฝ้ใ[4]ใ\n\nๅๅใ้กใๅบใใชใใใทใฅใผใฒใคใถใผใใขใณใใผใฐใฉใฆใณใใปใใณใฏใชใฉใ่ธ่ฅฒใใๆฅฝๆฒใใใฏใใญใธใผใ็จใใๅ
จใๆฐใใใขใคใใซๆดปๅใชใฉใ็นๅพดใจใใใ\n\nใฉใคใใฎใใจใใ่ฆณๆธฌใใใใกใณใฎใใจใใ่ฆณๆธฌๅกใใจๅผใถใ\n\nใฉใคใไธญใฏๅ็ๆฎๅฝฑๅฏ่ฝใๅ็ปๆฎๅฝฑไธๅฏ[5]ใ\n'
},
{
"_key": "ysm",
"name": "ใคใชใใจใใฃใจใใฅใผใ",
"description": 'BELLRINGๅฐๅฅณใใผใโThere There Theresใฎ้ๅถใๆๆใใใฏใชใ ใพใณๅฐๅทใซใใๆฐใขใคใใซใใญใธใงใฏใใใใ ใใBELLRINGๅฐๅฅณใใผใใใฃใฌใฏใฟใผใฎ็ฐไธญ็ดๆฒปใใใณAqbiRecใฏ้ๅถใซใฏ้ขไธใใ[1]ใใจใณใธใใขใฎๆ
็ง็ฏ๏ผDCGไปฃ่กจ๏ผใจๆๆๅคชใไฝๆฒๅฎถใปใขใฌใณใธใฃใผใฎใฟใใคใใใญใขใญ๏ผ2019ๅนด้ข่ฑ[ๆณจ 1]๏ผใใใชใใใผใ ใDCG ENTERTAINMENTใใใใญใใฅใผในใๆ
ใฃใฆใใ[2]ใ\n\nใณใณใปใใใฏใใคใชใใจใ ใใใฎๆฅๅธธใใใฃใจใใฅใผใใใฆใไฝใ่งฃๆฑบใใชใใใ ใใฉใใจใใใใใญใใฏใตใฆใณใใซๅใชใใกใญใใฃใผใไนใใฆๆญใฃใฆใฟใไบใซใใใใ[3]ใใฐใฉใณใธใใทใฅใผใฒใคใถใผใจใใฃใใชใซใฟใใใฃใใปใญใใฏใไธปไฝใจใใใใชใใใฟใใคใใฏใคใใใฅใผใงใฏใใใผใธใกใณใใจใใใฉใผใใณในใไธปใซๆ
ๅฝ[2]ใใฆใใใใใๆฌ่ทใงใใไฝๆฒใป็ทจๆฒใฏใชใผใใใณใฐSEใฎใใคใชใใจFridayใไปฅๅคๆใใใฆใใชใใ\n\nใฉใคใไธญใฎๅ็ๆฎๅฝฑใปๅ็ปๆฎๅฝฑใฏๅๅใจใใฆๅฏ่ฝใใชใใใใใคใใใตใผใใจใใฃใ"ไบบใฎไธใซไนใ่ก็บ"ใฏ2017ๅนด4ๆ29ๆฅไปฅ้็ฆๆญขใ\n'
},
{
"_key": "byooooonds",
"name": "BEYOOOOONDS",
"description": 'ใใญใใญ็ ไฟฎ็ใใ้ธใฐใใใกใณใใผใง็ตๆใใใใฆใใใใCHICA#TETSU๏ผใใซ๏ผใใ๏ผใ้จใๆฃฎ ๅทๆตท๏ผใใใฎใใ ใใใใฟ๏ผใใใใณใใใญใผ!ใใญใธใงใฏใโONLY YOUโใชใผใใฃใทใงใณใๅๆ ผ่
ใซใใๆงๆใใใ[1]ใ\nใใใ่ถ
ใใฆใใใใฎๅใใๅดใธใใจใใๆๅณใฎ่ฑๅ่ชใBeyondใใใฐใซใผใๅใฎ่ชๆบใจใใๆขๆใฎๆ ็ตใชใฉใ่ถ
ใใฆใ่ช็ฑใซๆชๆฅใธๅคงใใใใจใผใณใจไผธใณใฆใใฃใฆใปใใใจใใๆใใ่พผใใใใฆใใใๅฝขใๅคๅนป่ชๅจใซใใจใผใณใณใใผใใจๅค่ฒใใใใในใฉใคใ ใฎใใใชใฐใซใผใใ็ฎๆใ[1]ใ\nBEYOOOOONDSใฎใชใผใใผใฏใ2018ๅนด12ๆ็พๅจใๅ
ฌๅผใซใฏ็บ่กจใใใฆใใชใใ\n'
},
{
"_key": "tiptoe",
"name": "tipToe.",
"description": 'ๅถไฝใใญใใฏใทใงใณๅๅไผ็คพSOVAใฎ็คพๅ
ใใญใธใงใฏใใจใใฆ็ซใกไธใใใ2016ๅนดๅคใซ่กใฃใใชใผใใฃใทใงใณ[1] ใงไธ่ฌใใ้ธใฐใใใกใณใใผใง็ตๆใใใฟใใชใง้ๆฅใใพใใใ๏ผใใใณใณใปใใใซๆฒใใ้ๆฅใๅญฆๆ กใใขใใผใใจใใๆฅฝๆฒใใดใฃใธใฅใขใซใๆใกๅณใใกใณใใผใฏ3ๅนดไปปๆๅถใงๅ ๅ
ฅใใ3ๅนดใงๅฟ
ใๅๆฅญใใใใจใซใชใฃใฆใใใ\n\n็ตฑๆฌๅใณ้ณๆฅฝใใญใใฅใผใตใผใฏ้ณๆฅฝใฌใผใใซ6jomaProjectไธปๅฎฐใฎๆฌ้็ฟๅคชใๆ ๅใ่กฃ่ฃ
ใชใฉใๆ
ๅฝใใใดใฃใธใฅใขใซใใญใใฅใผใตใผใฏๅ็ๅฎถใฎ้ท่ฐทๅทๅญไฝใๆฅฝๆฒใๆฏไปใชใฉใซ่ช่บซใใขใผใใฃในใใจใใฆๆดปๅใใ่ฅๆใฏใชใจใคใฟใผใๆฐๅคใ่ตท็จใใใใจใ็นๅพดใ\n\nๆฅฝๆฒใฏใๆธ่ฐท็ณปใฎใฟใผใใใใใใผในใซใจใฌใฏใใญใใซใปใใใใใฅใผใณใฎ่ฆ็ด ใ็ใ่พผใใ ็ฝใใใงใจใขใผใทใงใใซใชใใฎใๅคใใ\n\nใฐใซใผใๅใฏใๅฐใใ ใ่ไผธใณใใฆใไปใใใ้ซใๆใซๅฑใใใใซใใจใใๆใใ่พผใใฆใ่ไผธใณใใใ(=ใใคใพๅ
ใง็ซใคใ)ใๆๅณใใ่ฑ่ชใstand on tiptoeใใใ[2]ใ\n'
},
]
# ใใผใฟใฎใญใผใ
url = base_url + '/d/load?table=MyFavoriteIdols'
headers = {'content-type': 'application/json'}
res = requests.post(url, data=json.dumps(payload), headers=headers)
ใใผใฟใฎๆค็ดข
ไปฅไธใฎใใใชใณใใณใใงๆค็ดขใใงใใพใใ
# ๆค็ดข
query = 'ใกใณใใผ'
column_setting = {
'table': 'MyFavoriteIdols',
'query': f"description:@{query}",
'output_columns': '_key,idol_name,description',
'sort_keys': '-_score'
}
url = base_url + '/d/select'
headers = {'content-type': 'application/json'}
res = requests.get(url, params=column_setting, headers=headers)
results = json.loads(res.content)
# ็ตๆ่กจ็คบ
print('hit: ', results[1][0][0][0])
clumn_names = results[1][0][1]
for result in results[1][0][2:]:
for i, clumn_name in enumerate(clumn_names):
print(clumn_name[0], ': ', result[i][0:50])
print()
็ตๆใฏไปฅไธใฎใใใชๆใใ
hit: 4
_key : amiina
idol_name : amiinA
description : ้่ชใใใณโใใใใฎ่ชญ่
ใขใใซใงใใฃใ[1]amiใจใmiinaใฎ2ไบบใงใ ใใฟใใชใใ็ตๆใใใ
_key : tiptoe
idol_name : tipToe.
description : ๅถไฝใใญใใฏใทใงใณๅๅไผ็คพSOVAใฎ็คพๅ
ใใญใธใงใฏใใจใใฆ็ซใกไธใใใ2016ๅนดๅคใซ่กใฃใใชใผใใฃใท
_key : byooooonds
idol_name : BEYOOOOONDS
description : ใใญใใญ็ ไฟฎ็ใใ้ธใฐใใใกใณใใผใง็ตๆใใใใฆใใใใCHICA#TETSU๏ผใใซ๏ผใใ๏ผใ้จใๆฃฎ
_key : dots
idol_name : ใปใปใปใปใปใปใปใปใป
description : 2016ๅนด4ๆใซ้ๅฌใใใใใๅฅณใฎๅญใฎๆฑไบฌใใคใใใ!!ใใใญใธใงใฏใ ใขใคใใซใชใผใใฃใทใงใณใใง้ธ
ใใใใซ
ไปๅใฏgroonagaใๆค็ดขใตใผใใผใจใใฆไฝฟใฃใฆใฟใใใใฎใใใใ็ดนไปใใฆใฟใพใใใ
ไปๅพใฏๅฎ้ใฎใตใผใใผไธใซ็ซใฆใๅ ดๅใฎๆง่ฝ่ฉฆ้จใใในใใใผใฟใซใใๆค็ดข็ตๆๆฏ่ผใชใฉใใฃใฆใฟใใใงใใ
Comments
Let's comment your feelings that are more than good