6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

meilisearch 日本語対応(トーカナイザの強制日本語化)

Posted at

概要

meilisearchは素晴らしいプロダクトなんだけど、通常ビルドだと日本語がイマイチ。
原因はトーカナイザにあって、中国語と日本語の判定に問題、、、というか日本語と中国語のコード体系に被りあるのが問題である。
どうせ日本語でしか使わないので、強制的に日本語固定にする作戦を決行する(中の人がたまに作ってくれるのだが、毎回作ってくれないので自分で作る)。

準備

  • wsl2で確認
  • git、rust、jq(サンプルデータ投入で使う)のインストール

コード

#!/bin/sh

git clone  https://github.com/meilisearch/meilisearch
cd meilisearch
sed -i -e "s/cargo build --release$/cargo build --release --no-default-features --features \"analytics mini-dashboard japanese\"/g" ./Dockerfile
VERSION=`grep version ./Cargo.toml | awk '{print $3}' | sed -e 's/"//g'`
docker build -t meilisearch-jp:v${VERSION} .

解説

sedの部分の1行だけ。そのあとdocker buildしてます。
ビルドにはそれなりに時間が掛かる。数分以上待つ。

docker起動

docker run -it --rm -p 7700:7700 -v $(pwd)/meili_data:/meili_data meilisearch-jp:v1.4.0

v1.4.0は適宜置き換え

Webブラウザで、http://localhost:7700/ で動作確認。まだindexがカラなので検索は確認できない。

サンプルデータ投入

郵便番号で試してみます。
https://www.post.japanpost.jp/zipcode/dl/utf-zip.html
によると2023年6月更新分よりutf8が増えたみたいです。
なおmeiliseachのデータ投入はjsonで行います。

csv → json変換

wget https://www.post.japanpost.jp/zipcode/dl/utf/zip/utf_all.zip
unzip utf_all.zip
cat utf_all.csv | tr -d '"' | sed -z 's/\n$//' | jq -s -R 'split("\n")|map(split(","))|map({"id" : .[2], "col1": (. [3] + " " + . [4] + " " + . [5]), "col2": (. [6] + " " + . [7] + " " + . [8])})' > utf_all.json

id:郵便番号、col1:住所カナ、col2:住所。 ↓ 以下参照

image.png

jsonデータ投入

curl \
  -X POST 'http://localhost:7700/indexes/sample1/documents?primaryKey=id' \
  -H 'Content-Type: application/json' \
  --data-binary @utf_all.json

index名はsample1。

2023-09-27_23h43_53 (1).jpg

(おまけ)index 削除

curl -X DELETE 'http://localhost:7700/indexes/sample1'

以上。

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?