[Solr] 外部パッケージ化された Data Import Handler (DIH) を使う

はじめに

Solr 8.6 以降 Data Import Handler (DIH)が deprecated となり、外部パッケージ化されました。

https://cwiki.apache.org/confluence/display/SOLR/Deprecations
https://github.com/rohitbemax/dataimporthandler

以前やったように Wikipedia の記事をインポートする作業を通じて、外部パッケージ化された DHI を利用する方法を確認しました。

Wikipedia のデータダウンロード

https://dumps.wikimedia.org/jawiki/
の latest から jawiki-latest-pages-articles.xml.bz2 をダウンロードして展開しておきます。

DIHをSolrにインストールする

パッケージ機能を有効にして Solr を起動

$ bin/solr -c -Denable.packages=true

data-import-handler パッケージのリポジトリを追加

$ bin/solr package add-repo data-import-handler "https://raw.githubusercontent.com/rohitbemax/dataimporthandler/master/repo/"

data-import-handler パッケージインストール

$ bin/solr package install data-import-handler

Wikipedia インポート用のコレクション設定

$ cd solr-8.10.0/server/solr/configsets
$ cp -r _default wikipedia
$ vi wikipedia/conf/data-config.xml

DIH 用の設定ファイル data-config.xml を作成します。

<dataConfig>
  <dataSource type="FileDataSource" encoding="UTF-8" />
  <document>
    <entity name="page"
                processor="XPathEntityProcessor"
                stream="true"
                forEach="/mediawiki/page/"
                url="data/jawiki-latest-pages-articles.xml"
                transformer="RegexTransformer,DateFormatTransformer">
      <field column="id"        xpath="/mediawiki/page/id" />
      <field column="title"     xpath="/mediawiki/page/title" />
      <field column="revision"  xpath="/mediawiki/page/revision/id" />
      <field column="user"      xpath="/mediawiki/page/revision/contributor/username" />
      <field column="userId"    xpath="/mediawiki/page/revision/contributor/id" />
      <field column="text"      xpath="/mediawiki/page/revision/text" />
      <field column="timestamp" xpath="/mediawiki/page/revision/timestamp" dateTimeFormat="yyyy-MM-dd'T'hh:mm:ss'Z'" />
      <field column="$skipDoc"  regex="^#REDIRECT .*" replaceWith="true" sourceColName="text"/>
    </entity>
  </document>
</dataConfig>

読み込み対象を data/jawiki-latest-pages-articles.xml と指定しているので、記事ファイルを ${SOLR}/server/data/jawiki-latest-pages-articles.xml としてコピーしておきます。

設定ファイルのセットを ZooKeeper 上にアップロードします。

(cd conf && zip -r - *) |curl -X POST --header "Content-Type:application/octet-stream" --data-binary @- "http://localhost:8983/solr/admin/configs?action=UPLOAD&name=wikipedia"

コレクション wikipedia を作成して DIH を有効にする

先程アップロードした設定ファイルを指定して、コレクション wikipedia を作成します。

$ curl "http://localhost:8983/solr/admin/collections?action=CREATE&name=wikipedia&numShards=1&collection.configName=wikipedia"

コレクション wikipedia に data-import-handler をデプロイします。

$ bin/solr package deploy data-import-handler -y -collections wikipedia

Wikipedia の記事をインポートする

full-import をスタート。

$ curl "http://localhost:8983/solr/wikipedia/dataimport?command=full-import"

電動空気入れが意外と便利

普段の街中の移動はクロスバイクです。運動不足解消を兼ねて1時間以内の距離ならなるべく自転車で行くようにしています。自転車で1時間だと大阪市内のかなりの範囲をカバーできてしまいます。

タイヤの空気の管理は気をつけるようにはしていますが、マンションの駐輪場に停めている関係上、こまめに空気を入れるのは意外と面倒です。家から空気入れを持って駐輪場に行き、空気を入れてから空気入れを家まで戻してもう一回駐輪場に行って出発する、という手順が必要になるからです。空気入れを駐輪場に置いて出発すれば良いのですが、共有の場所なのでそれも気が引けます。

そんな訳で、小型の電動空気入れを買ってみました。スマホで有名な Xiaomi 製。セールのタイミングで5000円くらいでした。普通の空気入れと比べるとずいぶん高い印象ですが、これがなかなか優れものでした。

まず小さいので、遠出するのでもなければ空気を入れた後そのままカバンに入れて出かけられます。重さは500gくらいでペットボトル1本分。

タイヤのバルブに繋いでスタートボタンを押したら、予め設定しておいた空気圧まで自動的に空気を入れてくれます。自転車のタイヤの空気圧が下がったのを補う程度なら、10秒から20秒ってところです。コンプレッサーなのでそれなりに音はしますが、マンションの自転車置き場とか道端とかで使って問題になるような大きな音ではありません。

これを使うようになってから、前にも増してタイヤがぺちゃんこの状態で走っている余所の自転車が気になるようになってしまいました。

人生ではじめて二日酔いになった

29歳にしてはじめて二日酔いを経験しました、ぽんこつエンジニアのみあです。

タイトルの通り、その日は突然やってきました。

もともとお酒はすきで、日本酒やワインをよく好んで飲むのですが、その日も

自分の”大丈夫なライン”でお酒を楽しんでいました。

※今のわたしには”大丈夫なライン”なんて存在しません。常に自分を疑っています。

眠るときは、心地いいな、飲みすぎたな。くらいだったのですが、

翌日、朝目が冷めた時にいつもと様子が違いました。

『・・・・・・うん?気持ち悪い。なんだ、全然酔いが覚めていないゾ。』

そこからふら〜とおトイレに行きまして、本日一度目のお祈り(ご察しください)

そのあと、お水をガブガブのみまして、そこから二度目のお祈り。

そしてその日の予定は、車で長時間の移動がある日で車の振動もあり車中で4回ほどお祈りして

途中でコンビニやサービスエリアに寄っていただきその度にお祈りしました。

そう、完全なる二日酔いでした。

おもな症状はこちら

  • とにかくきもちわるい
  • ぼーっとする
  • 突然くる吐き気
  • ズキズキした頭の痛み
  • 寒気、悪寒
  • 胃の痛み
  • なにも飲みたくないたべたくない
  • 二日酔いになった自分への情けなさ

二日酔いになったことがない私にとって、何をしたらいいのかどうするのが正解なのかが

わからずとりあえず吐き続けていました。

一緒にいた方にあさりのお味噌汁やお水やエチケット袋をもたせてもらったりして

介抱していただいてすごく助かったので、二日酔いになったときにはどうするといいのか。

そもそも、酒は飲んでも飲まれるな。という自責も込めて二日酔いにならないためには

どうしたらいいのか?を今回書いていきたいなと思います。

二日酔いになったとき

    水分をたくさんとりましょう

    脱水症状になるので、飲みたくなくても飲みましょう。絶対に。

    飲めるか〜〜何も口にしたくないの気持ちはわかります、でも飲みましょう。

    エチケット袋は必須

    吐きそうじゃなくてもエチケット袋は絶対にもっておきましょう。

    吐きそうじゃなくても突然きます。うぷっから2秒もないです。

    あって困ることはないので二日酔いのときは袋は必須でお願いします。

    あと、吐いたあとのためにアルコール除菌シートとかハンカチとかあるといいなと思いました。

    おすすめの飲み物と食べ物

    • お水(お水ならなんとか入るよね)
    • スポーツドリンク
    • 果物ジュース、野菜ジュース
    • ほっとレモン
    • しじみのみそ汁
    • 梅干しおにぎり
    • くだもの

    食べれないけど、なにか胃に入れた方がいいらしいです。わたしはここをサボりました。

    とにかくもう食べれない飲めない状態で、、後に脱水症状になり寒気に襲われます。

    がんばってたくさんお水のんでなにか口にしてください。

    二日酔いにならないために

    そもそも二日酔いになりたくない….どうしたらいいのか予防できることはしていきましょう。

    水を飲む

    また水かい!!と思いますが、チェイサーを挟むことで飲みすぎ防止にもなり、アルコール濃度がうすまり肝臓への負担がすくなくなります。

    肝機能の働きをたすけるおつまみを食べる

    低脂肪高たんぱくのたべものはで、肝機能を強化するタウリンを含むので積極にとるといいらしいです。

    • 冷奴
    • 焼き鳥(皮など脂の多い部位以外)、刺身
    • タコ、イカ、貝類
    • 豚肉をつかったもの
    • 枝豆

    ウコンやヘパリーゼにお世話になる

    薬局、コンビニどこにでもあるのでもうお世話になりましょう。

    これ飲んだら安心して飲めるので黙って飲みましょう。

    タイミングはやはりお酒を飲む前に仕込むのが大事らしいです。

    二日酔いになった日、もう二度とお酒は飲みたくない。。。もう飲まない。。と

    思ったのに、こんなブログを書いてる自分に驚きです。

    今度二日酔いになったときはすこしは成長しているかもしれません?

    NOPEを見に行ってみた

    突然ですがNOPEという映画をご存じでしょうか。「のぺ」ではありません「ノープ」と呼びます。2022年7月北米公開のアメリカ製映画でパニック系のクリーチャーが出てくるジャンル。日本では早秋公開。NOPEは「ありえない」みたいなニュアンスを持った「No」を言い換えたスラングのようです。

    最近ではマーブル以外はあまり聞かなくなった洋画(日本映画はもっと聞かないのは僕の気のせいかもしれません)の中で面白そうなので劇場に行ってみました。同時期の対抗馬としては「HiGH&LOW THE WORST X」そして多くの女性客が吸い込まれていった「劇場版 うたの☆プリンスさまっ♪ マジLOVEスターリッシュツアーズ (大好き) <マジ LOVE ライブ上映」があったものの、結構席が埋まっていたので知る人ぞ知る情報だったのかもしれません。

    私もこの作品を知ったのはSNSでのティザー動画。
    公式では「田舎町の牧場に空から異物が降り注ぎ、牧場経営する一家の父が息絶える。現場にいた長男は、謎の飛行物体を目撃していた。やがて、妹と共に動画撮影を試みた彼は、想像を絶する事態に見舞われる。」という感じのストーリーですが、主人公やキャラクターの繋がりや動機の作りこみに粗さを感じるところが多々あったけど、肝心なのは「クリーチャーの正体が見えて萎える」これがなかったのが良くて、終始得体の知れなさと後半の映像のドライブ感があり、今までになかったような作品でした。テイストは全く違いますが、クリーチャーの得体の知れなさはミストに通じるところも感じました。久しぶりに劇場に足を運ぶのも悪くないですよね。

    【NOPE公式サイト】
    https://nope-movie.jp/

    [Solr] zeppelin-solr で Geospatial

    Zeppelin 上で Solr の検索結果を地図にプロットすることもできます。

    まずはメニューから Helium を開き、 volume-leaflet を有効にします。

    volume-leaflet が利用可能になったらノートブック上で地球のアイコンが追加されます。

    検索結果に緯度経度のフィールドが含まれる形で検索してから valume-leaflet を開き、Available Fields の coodinates に緯度経度のフィールド(この場合は address_p)を、tooltip に name_str のフィールドを指定するとプロットされます。(popup や gis_server は任意)

    位置情報を持つデータ傾向を地図上で簡単に把握できる非常に良い手段だと思います。