Solr×AWS Bedrockでベクトル検索してみた #doda Developer Group Advent Calendar 2024

はじめに

アドベントカレンダー 9 日目担当の廣瀬と申します。
私は doda グロース開発に所属しており、普段は doda サイトの開発に従事しております。

業務でもベクトル検索に触れる機会があり、今回ベクトル検索についての記事を書く機会をいただきました。

昨今、生成 AI という言葉をニュースなどで耳にする機会が多くなっているかと思います。実はベクトル検索も裏側で生成 AI が活用されている技術の 1 つになります。

今回はベクトル検索の概要から始まり、Solr での活用方法、そして、実際に試す方法を紹介していきます。

 

1.  ベクトル検索とは?


ベクトル検索の概要

ベクトル検索はテキストや画像など非構造化データをベクトル化し、類似性を計算して検索する技術になります。

従来のキーワード検索では実現できなかった、データの意味や文脈を考慮した検索が可能となり、よりユーザーの意図に即した関連性の高い結果を返すことが可能となります。

 

2. Solr を使ったベクトル検索

Solr とは

OSS の全文検索システムになります。全文検索とは特定の文書から特定のキーワードを検索する技術を指します。例えば、EC サイトの商品検索などに用いられている技術になります。

 

Solr✖️ベクトル検索

Solr ではバージョン 9 よりベクトル検索機能が導入されました。
Solr 自体には埋め込みを生成する機能はありませんが、埋め込みベクトルを格納しておくベクトル DB として Solr を活用できます。

 

3. Bedrock を用いて埋め込みを生成し、Solr で検索

ここからは実際に Solr でベクトル検索を試していきます。
四季を表現した文章の中から季語に類似性の高い順にマッチする例を試していきます。

必要なもの
・AWS アカウント
・Docker


Solr 構築

下記のコマンドを順番に実行してください。

mkdir solrdata
#solr9.2のイメージを作成
docker run -d -v "$PWD/solrdata:/var/solr" -p 8983:8983 --name my_solr solr:9.2 solr-precreate gettingstarted
#Dockerコンテナに入る
docker container exec -it my_solr /bin/bash
#コアを作成
solr@cdc4b1feaf15:/opt/solr-9.2.1$ bin/solr create -c seasons

 

埋め込みの生成

次に AWS Bedrock を用いて、埋め込みを生成します。

バージニア北部リージョンにて、Titan Text Embeddings V2 のモデルを「リクエスト可能」を押下し、有効にする。
※東京リージョンでは現時点では対象外のため、バージニア北部リージョンを使用しています。

Bedrock 有効化

Bedrock の有効化が完了しましたら、Python のコードで実際に Bedrock の API を呼び出してみます。

今回は cloud9 環境にて Python を動作させていきます。

cloud9

まずは下記のコマンドにて Python の AWS SDK をインストールします。

pip install boto3==1.34.87

下記のソースコードを保存してください。

boto3 を用いて、先ほど有効化した Bedrock のモデルを呼び出すようになっています。

titan-embed.py

# Python外部ライブラリをインポート
import base64
import json
import boto3

# Bedrockクライアントを作成
bedrock_runtime = boto3.client("bedrock-runtime")

strings = [
    '木々が芽吹き、柔らかな新緑が目に映る季節。温かな陽光に包まれ、花々が咲き乱れ、空気にはほのかな香りが漂う。生命の息吹を感じさせるこの時期には、日々が穏やかで心が弾む。', 
    '強い日差しが降り注ぎ、青空が広がる日が続く。蝉の声が響き渡り、冷たい飲み物や川辺の涼が恋しくなる。鮮やかな風景が広がり、エネルギーに満ちた時間が流れる。',
    '木々の葉が色づき、黄金や赤に染まる景色が広がる。涼やかな風が吹き、収穫の恵みを感じる季節。夕暮れが美しく、静けさの中に少しの物寂しさが漂う。',
    '冷たい空気が肌を刺し、木々が静かに眠る時期。雪が積もると世界は白一色になり、しんとした静寂が広がる。温かな食べ物や囲炉裏の火が恋しくなる季節。'
    ]
for string in strings:
    body = json.dumps(
        {
            "inputText": string,
            "dimensions": 256
        }
    )
    
    response = bedrock_runtime.invoke_model(
    	body=body, 
    	modelId="amazon.titan-embed-text-v2:0", 
    	accept="application/json", 
    	contentType="application/json"
    )
    
    response_body = json.loads(response.get("body").read())
    print(response_body.get("embedding"))
    print("---------------------------------------------------------------")
    
query1 = "春"
body = json.dumps(
    {
        "inputText": query1,
        "dimensions": 256
    }
)

response = bedrock_runtime.invoke_model(
	body=body, 
	modelId="amazon.titan-embed-text-v2:0", 
	accept="application/json", 
	contentType="application/json"
)

response_body = json.loads(response.get("body").read())
print(query1)
print(response_body.get("embedding"))

 

実行結果

$ python3 titan-embed.py

木々が芽吹き、柔らかな新緑が目に映る季節。温かな陽光に包まれ、花々が咲き乱れ、空気にはほのかな香りが漂う。生命の息吹を感じさせるこの時期には、日々が穏やかで心 が弾む。
[-0.10103485733270645, 0.06211772933602333, -0.07895687222480774, 0.03667191043496132, 0.03573640435934067, -0.024884512647986412, 0.08793774992227554, -0.014313272200524807, -0.07259541749954224, -0.0009764364222064614, -0.010056710802018642, -0.08569253236055374, -0.06997599452733994, 0.06174352392554283, 0.07746005803346634, 0.06548555940389633, 0.014032619073987007, 0.021984437480568886, -0.026568425819277763, 0.051265835762023926, -0.011974502354860306, 0.033304084092378616, -0.01964566670358181, 0.06398874521255493, -0.03498799726366997, 0.09280239045619965, -0.05687888339161873, -0.07596324384212494, 0.012348704971373081, -0.10851892083883286, 0.11001573503017426, 0.10926733165979385, 0.03667191043496132, -0.06398874521255493, 0.0006226974655874074, 0.08531832695007324, -0.03311698138713837, -0.029000746086239815, -0.09018296748399734, -0.024323206394910812, 0.12947429716587067, -0.021797334775328636, -0.0016137512866407633, 0.005846924614161253, 0.07858266681432724, 0.031620170921087265, -0.05463366582989693, 0.03554930165410042, 0.06473714858293533, 0.04453017935156822, -0.14444242417812347, 0.06436295062303543, -0.07109860330820084, 0.13995198905467987, 0.026381324976682663, 0.06960178911685944, -0.06698237359523773, 0.031994372606277466, -0.04303336516022682, -0.06174352392554283, -0.07334382086992264, 0.06511135399341583, 0.028626544401049614, 0.029936254024505615, -0.06286613643169403, -0.06960178911685944, -0.026755528524518013, 0.03985263779759407, -0.02039407379925251, 0.012348704971373081, -0.02226508967578411, 0.07334382086992264, 0.026381324976682663, 0.06735657155513763, -0.14219720661640167, -0.03442669287323952, 0.10178326815366745, 0.08793774992227554, 0.048272211104631424, -0.03835582733154297, -0.002104892861098051, -0.025258714333176613, 0.017306897789239883, -0.027878137305378914, 0.11675139516592026, -0.11899661272764206, -0.016371389850974083, -0.04359466955065727, 0.06660816818475723, -0.050891634076833725, 0.03798162192106247, 0.09429920464754105, -0.08793774992227554, 0.025445817038416862, 0.06660816818475723, -0.04696249961853027, -0.05538207292556763, 0.013003560714423656, -0.049020618200302124, -0.11600298434495926, -0.021423133090138435, 0.14818446338176727, 0.14743605256080627, -0.08681514114141464, -0.003297665622085333, 0.09804123640060425, 0.06136932224035263, 0.07035019993782043, -0.049769025295972824, -0.11076414585113525, 0.020487625151872635, 0.029562052339315414, -0.009682507254183292, -0.10926733165979385, 0.09055717289447784, -0.02357480116188526, 0.15941055119037628, 0.15192648768424988, -0.02151668258011341, 0.012442256323993206, -0.05837569758296013, -0.09280239045619965, 0.04565278813242912, 0.10627370327711105, -0.013377764262259007, -0.050517428666353226, 0.04191075637936592, 0.049769025295972824, -0.05800149217247963, 0.1818627417087555, -0.03573640435934067, -0.025632917881011963, 0.010664790868759155, -0.05238844454288483, -0.015529432334005833, 0.024884512647986412, 0.05463366582989693, 0.04453017935156822, -0.09242818504571915, -0.07895687222480774, 0.010664790868759155, 0.029749153181910515, -0.14519083499908447, -0.06174352392554283, -0.03498799726366997, -0.021984437480568886, -0.019739218056201935, 0.04621409252285957, 0.16689461469650269, -0.03685901314020157, 0.014500373043119907, 0.03929133340716362, 0.07334382086992264, 0.09130557626485825, -0.005121906287968159, 0.04172365367412567, -0.05949830636382103, -0.08307310938835144, 0.05238844454288483, -0.07671165466308594, -0.0017423835815861821, 0.0029468501452356577, 0.030684661120176315, -0.10552529990673065, 0.03461379557847977, 0.005987251177430153, 0.009214753285050392, 0.03947843611240387, 0.02076827734708786, -0.050517428666353226, -0.03910423442721367, -0.015997186303138733, -0.012348704971373081, 0.049020618200302124, -0.05538207292556763, 0.026568425819277763, -0.004139622673392296, -0.014126170426607132, -0.021984437480568886, -0.04078814759850502, 0.0016020573675632477, 0.03798162192106247, -0.016932694241404533, -0.0031573392916470766, 0.04078814759850502, -0.07035019993782043, 0.09242818504571915, -0.011880951002240181, 0.06847918033599854, -0.012348704971373081, 0.02394900470972061, -0.023387698456645012, -0.04172365367412567, -0.031433068215847015, 0.021423133090138435, -0.04658829793334007, 0.06997599452733994, -0.07484063506126404, -0.012255154550075531, -0.11600298434495926, 0.01852305792272091, -0.013845518231391907, 0.06548555940389633, -0.03742031753063202, -0.014874576590955257, -0.04415597766637802, -0.0015669758431613445, 0.02058117464184761, -0.05725308880209923, -0.0026428101118654013, 0.032181475311517715, 0.015529432334005833, 0.04359466955065727, -0.07820846885442734, 0.016090737655758858, 0.049394819885492325, -0.04471728205680847, -0.021610233932733536, -0.026194222271442413, -0.001391568104736507, 0.03611060604453087, -0.005332395434379578, 0.003414604114368558, 0.020487625151872635, 0.02114248089492321, 0.05912410467863083, 0.14519083499908447, -0.024884512647986412, -0.06511135399341583, 0.10627370327711105, 0.04546568542718887, -0.06398874521255493, -0.027691036462783813, 0.050517428666353226, -0.012068052776157856, 0.09055717289447784, 0.05575627461075783, 0.07633744925260544, 0.011553523130714893, -0.029936254024505615, -0.07521484047174454, -0.08307310938835144, 0.050891634076833725, -0.04434307664632797, -0.03685901314020157, -0.031620170921087265, -0.007437288295477629, 0.06623396277427673, -0.022171538323163986, -0.06548555940389633, 0.16090737283229828, -0.049020618200302124, -0.04340757057070732, -0.014874576590955257, -0.05575627461075783, 0.012910010293126106]
-----------------------------------------------------------------------------
強い日差しが降り注ぎ、青空が広がる日が続く。蝉の声が響き渡り、冷たい飲み物や川辺の涼が恋しくなる。鮮やかな風景が広がり、エネルギーに満ちた時間が流れる。
[-0.03096146322786808, 0.03222152218222618, 0.0004640844417735934, 0.07668362557888031, 0.03474164381623268, -0.02016095258295536, -0.002385112689808011, -0.06768319755792618, 0.023761123418807983, -0.13536639511585236, -0.011115524917840958, 0.03510165959596634, 0.08532403409481049, 0.03348158299922943, -0.015750745311379433, 0.08244390040636063, -0.04356205835938454, -0.028801361098885536, 0.09432445466518402, 0.1375264972448349, 0.030061420053243637, 0.03942186385393143, -0.022231049835681915, -0.014040663838386536, -0.09576452523469925, -0.13968659937381744, -0.05256248265504837, -0.02682126685976982, 0.060122840106487274, -0.07956375926733017, 0.06516308337450027, 0.11592547595500946, 0.025921225547790527, -0.07632360607385635, 0.11520544439554214, 0.15912751853466034, 0.09216435253620148, -0.04014189913868904, -0.057242706418037415, -0.028801361098885536, 0.08316393196582794, 0.04212199151515961, -0.0009112930856645107, 0.05076240003108978, 0.04716222733259201, 0.01620076596736908, 0.023401105776429176, 0.11664551496505737, 0.0716433897614479, 0.07956375926733017, -0.04284202679991722, 0.02556120790541172, -0.08388396352529526, 0.21024993062019348, 0.011385537683963776, 0.13896657526493073, 0.03258154168725014, 0.10152480006217957, -0.024661164730787277, -0.17856843769550323, -0.009180434048175812, -0.023581113666296005, 0.08028379827737808, 0.07704364508390427, 0.029161378741264343, 0.010260485112667084, -0.08136384934186935, 0.03474164381623268, 0.07740365713834763, -0.03330157324671745, -0.03870182856917381, -0.07200340181589127, 0.06696316599845886, 0.011115524917840958, -0.13032616674900055, -0.043742068111896515, 0.06840323656797409, 0.00810038298368454, -0.02268107235431671, -0.018000850453972816, 0.05004236474633217, 0.1029648631811142, 0.0008662909385748208, 0.058322757482528687, 0.11520544439554214, -0.07056333869695663, -0.06300298124551773, 0.08136384934186935, 0.020790982991456985, -0.04968234896659851, 0.04122195020318031, -0.016740791499614716, -0.012240578420460224, 0.020880987867712975, 0.04158196598291397, -0.09180434048175812, -0.02160102128982544, 0.011880561709403992, 0.005805274471640587, -0.049322329461574554, 0.03312156721949577, 0.13536639511585236, 0.12384585291147232, -0.058682773262262344, 0.11880561709403992, 0.027541302144527435, 0.01611076109111309, 0.07704364508390427, -0.1130453422665596, 0.06804321706295013, 0.06804321706295013, 0.02034096233546734, -0.011790556833148003, -0.04158196598291397, 0.12960612773895264, -0.10656503587961197, 0.0979246273636818, 0.08532403409481049, 0.06264296174049377, 0.00270012766122818, -0.07668362557888031, -0.12672598659992218, -0.028801361098885536, 0.08748413622379303, -0.06552309542894363, -0.03726176172494888, -0.060122840106487274, -0.07956375926733017, -0.02970140427350998, 0.05940280854701996, 0.026641258969902992, 0.006255295593291521, 0.11160527169704437, -0.039781879633665085, -0.034381624311208725, 0.01341063342988491, 0.10440493375062943, 0.017820842564105988, -0.08568405359983444, -0.060122840106487274, -0.03726176172494888, 0.06192292645573616, -0.06552309542894363, 0.004477711860090494, -0.04284202679991722, -0.010890514589846134, 6.504213524749503e-05, -0.0565226711332798, 0.1764083355665207, -0.0835239514708519, 0.04212199151515961, 0.02304108813405037, -0.02448115684092045, -0.054722584784030914, -0.07308345288038254, -0.0716433897614479, 0.029161378741264343, -0.01737082190811634, 0.07308345288038254, -0.0002854822378139943, -0.0013838154263794422, 0.002621373860165477, 0.07452352344989777, -0.07200340181589127, 0.01746082492172718, 0.030421437695622444, -0.010620501823723316, 0.04284202679991722, 0.00032626543543301523, -0.0020475967321544886, -0.014670693315565586, -0.05004236474633217, 0.012510591186583042, 0.029161378741264343, 0.053282517939805984, 0.054722584784030914, 0.00945044681429863, 0.012690600007772446, -0.039781879633665085, 0.0031276477966457605, 0.018270863220095634, 0.04860229790210724, -0.0455421507358551, -0.05076240003108978, -0.017010804265737534, -0.04320204257965088, 0.008505402132868767, -0.05112241581082344, 0.012510591186583042, 0.04176197573542595, 0.036901745945215225, -0.03240153193473816, 0.03474164381623268, -0.023581113666296005, 0.005220246966928244, 0.008190386928617954, -0.054362569004297256, -0.08208388090133667, -0.0910843014717102, -0.005107741337269545, 0.03762177750468254, 0.10656503587961197, -0.06264296174049377, -0.023581113666296005, -0.05616265535354614, 0.018270863220095634, -0.008190386928617954, 0.09504449367523193, 0.07380349189043045, -0.027541302144527435, -0.019620927050709724, 0.005197745747864246, -0.03096146322786808, -0.013950658962130547, -0.010890514589846134, 0.026641258969902992, -0.03474164381623268, -0.05940280854701996, 0.09036426991224289, -0.008775414898991585, -0.020790982991456985, 0.010260485112667084, 0.058322757482528687, 0.026281241327524185, 0.04824227839708328, 0.023941131308674812, 0.018000850453972816, 0.04716222733259201, -0.03600170090794563, 0.09936469793319702, 0.012690600007772446, -0.02169102616608143, 0.018270863220095634, -0.016740791499614716, 0.019260911270976067, 0.15120714902877808, 0.04608217626810074, -0.036901745945215225, 0.009855465963482857, -0.1029648631811142, -0.05004236474633217, -0.00774036580696702, 0.04212199151515961, -0.026281241327524185, -0.0017213313840329647, 0.012420587241649628, -0.007695363834500313, 0.0514824315905571, -0.03726176172494888, -0.1274460256099701, 0.05256248265504837, -0.00868541095405817, -0.04266201704740524, -0.1080051064491272, 0.02007094956934452, 0.006975329481065273]
-----------------------------------------------------------------------------
木々の葉が色づき、黄金や赤に染まる景色が広がる。涼やかな風が吹き、収穫の恵みを感じる季節。夕暮れが美しく、静けさの中に少しの物寂しさが漂う。
[-0.03913220763206482, 0.057790182530879974, -0.013869643211364746, 0.002084574429318309, 0.021134695038199425, -0.03269273042678833, 0.025757908821105957, -0.048873983323574066, -0.06670638173818588, 0.03401365131139755, 0.0032403781078755856, -0.17304031550884247, 0.014447545632719994, 0.05019490048289299, 0.05481811612844467, 0.05845063924789429, -0.025097450241446495, -0.06769707053899765, 0.12746863067150116, 0.036325257271528244, -0.023611417040228844, -0.04392053931951523, -0.02105213701725006, -0.008462133817374706, -0.09972934424877167, -0.006810985505580902, 0.06934821605682373, -0.05878087133169174, 0.012135937809944153, 0.009865609928965569, 0.1069943904876709, 0.11029668897390366, -0.041774045675992966, -0.027409058064222336, 0.08123648166656494, 0.08916199207305908, -0.007099936716258526, 0.022785842418670654, -0.1017107218503952, -0.10435255616903305, 0.11954312026500702, 0.026748597621917725, -0.001589230028912425, -0.05448788404464722, 0.04326007887721062, 0.015603349544107914, -0.031206699088215828, 0.037150830030441284, 0.10303163528442383, 0.001068086363375187, -0.12878954410552979, -0.011062691919505596, -0.09444566816091537, 0.16247296333312988, -0.021134695038199425, 0.1637938916683197, -0.10963623225688934, 0.020887022837996483, 0.0027037549298256636, -0.05580880492925644, 0.0254276804625988, 0.03269273042678833, -0.011227807030081749, 0.00396275520324707, 0.04127870127558708, 0.001424115151166916, -0.056139033287763596, 0.06439477205276489, 0.003983394708484411, -0.03566479682922363, -0.03401365131139755, -0.04160892963409424, 0.016181251034140587, -0.00895747821778059, -0.13869643211364746, -0.08123648166656494, 0.016098693013191223, 0.048213522881269455, 0.04854375123977661, -0.06340408325195312, 0.029885780066251755, 0.008255740627646446, 0.062413398176431656, 0.022785842418670654, 0.08255740255117416, -0.12746863067150116, -0.07199005782604218, 0.019318431615829468, 0.022455614060163498, -0.04722283408045769, 0.07265051454305649, 0.140677809715271, -0.07430166006088257, 0.024436991661787033, 0.01585102081298828, -0.008090625517070293, -0.10303163528442383, 0.03351830691099167, -0.022125383839011192, -0.11095714569091797, -0.021299809217453003, 0.1017107218503952, 0.1129385232925415, -0.09114336967468262, -0.07165982574224472, 0.04359030723571777, 0.13143138587474823, 0.14265918731689453, 0.047553062438964844, -0.13143138587474823, 0.012135937809944153, 0.03170204162597656, -0.0845387801527977, -0.09180383384227753, 0.05679949373006821, -0.11690127849578857, 0.10567347705364227, 0.04590191692113876, 0.02707882784307003, 0.01011328212916851, -0.12152449786663055, -0.08850153535604477, -0.041113585233688354, 0.10369209945201874, 0.022785842418670654, -0.06076224893331528, -0.05184604972600937, -0.0785946473479271, -0.0043136244639754295, 0.12680816650390625, -0.07199005782604218, 0.03516945242881775, 0.014447545632719994, 0.12482679635286331, -0.04392053931951523, -0.017419612035155296, 0.15917067229747772, 0.027574172243475914, -0.030546238645911217, -0.10633393377065659, 0.056139033287763596, 0.02295095846056938, -0.03913220763206482, -0.03269273042678833, -0.07760395854711533, -0.10038980096578598, 0.030050894245505333, 0.03483922407031059, 0.042599618434906006, 0.035334568470716476, 0.030050894245505333, 0.0508553609251976, 0.09114336967468262, 0.0785946473479271, -0.05712972208857536, -0.037150830030441284, -0.02939043566584587, -0.01436498761177063, 0.034674108028411865, -0.0009081314201466739, 0.03649037331342697, 0.002394164679571986, 0.034508995711803436, -0.022125383839011192, 0.05745995044708252, -0.020887022837996483, 0.025923024863004684, -0.012548725120723248, -0.014612659811973572, 0.04292985051870346, -0.05184604972600937, -0.055478572845458984, -0.0023838449269533157, -0.020556792616844177, 0.06901799142360687, 0.04045312851667404, 0.012135937809944153, -0.012961512431502342, 0.010154560208320618, -0.006150526460260153, 0.02080446481704712, 0.009205150417983532, -0.041113585233688354, -0.08024579286575317, 0.026748597621917725, 0.05580880492925644, 0.046562373638153076, -0.0023116073571145535, -0.012631282210350037, 0.017419612035155296, 0.014034758321940899, -0.06967844814062119, 0.011310364119708538, -0.04326007887721062, 0.033022962510585785, 0.0015066725900396705, -0.013869643211364746, -0.10633393377065659, -0.06604592502117157, -0.044911228120326996, 0.06439477205276489, 0.007223772816359997, 0.10038980096578598, 0.014942890033125877, -0.055478572845458984, -0.09642704576253891, 0.006604592315852642, -0.003302296157926321, -0.05712972208857536, -0.017997514456510544, 0.017006825655698776, -0.014447545632719994, 0.03285784646868706, -0.10633393377065659, 0.041113585233688354, 0.030546238645911217, -0.028069516643881798, 0.02856486104428768, -0.08652015775442123, -0.03995778411626816, 0.07430166006088257, -0.0957665890455246, 0.008668527007102966, -0.032197386026382446, -0.05646926164627075, 0.04326007887721062, 0.1294500082731247, -0.015603349544107914, -0.07199005782604218, -0.03269273042678833, -0.01915331743657589, -0.030050894245505333, 0.029885780066251755, -0.07595281302928925, -0.06340408325195312, 0.02476722002029419, 0.09906888008117676, -0.06670638173818588, 0.016181251034140587, -0.05977156013250351, -0.00714121526107192, -0.034674108028411865, -0.02856486104428768, 0.08255740255117416, -0.016511481255292892, -0.026913713663816452, 0.06373431533575058, 0.051515817642211914, -0.09114336967468262, -0.11425944417715073, 0.06703661382198334, -0.04953444004058838, 0.000446325953816995, 0.039462439715862274, -0.053827427327632904, 0.010030724108219147]
-----------------------------------------------------------------------------
冷たい空気が肌を刺し、木々が静かに眠る時期。雪が積もると世界は白一色になり、しんとした静寂が広がる。温かな食べ物や囲炉裏の火が恋しくなる季節。
[-0.027227845042943954, 0.05180853605270386, 0.0673132836818695, -0.041030850261449814, -0.0038052804302424192, -0.063153475522995, 0.003190763061866164, -0.03422388806939125, -0.04745964705944061, 0.023446200415492058, -0.0620189793407917, 0.044245246797800064, 0.036303792148828506, -0.027416927739977837, 0.039329107850790024, 0.04405616596341133, -0.012101264670491219, -0.1111803650856018, 0.09075947850942612, 0.011864911764860153, 0.08395252376794815, 0.01947547309100628, -0.0060979025438427925, 0.022122623398900032, -0.020515425130724907, -0.023446200415492058, -0.031198572367429733, -0.05294303223490715, 0.006806961260735989, -0.07828005403280258, 0.011344934813678265, 0.08395252376794815, 0.03724920377135277, -0.03573654592037201, 0.0673132836818695, 0.15277846157550812, 0.10361707210540771, 0.025526104494929314, -0.0024580692406743765, -0.0824398621916771, 0.0865996703505516, 0.025715187191963196, -0.0030489512719213963, 0.09000315517187119, -0.015032039023935795, 0.07714556157588959, -0.00798872485756874, 0.06504429876804352, 0.060506321489810944, 0.1005917564034462, -0.09907910227775574, 0.020893588662147522, -0.09756644070148468, 0.18983858823776245, 0.01947547309100628, 0.12781959772109985, 0.020042719319462776, 0.029496831819415092, -0.052564866840839386, -0.13613922894001007, 0.013992086984217167, -0.030442243441939354, -0.11723099648952484, 0.04254350811243057, 0.05634651333093643, -0.11647466570138931, -0.08357435464859009, 0.0044434331357479095, 0.06504429876804352, 0.04651423543691635, -0.04821597412228584, -0.004419797565788031, 0.11798732727766037, 0.03838369622826576, -0.07298575341701508, -0.08546517789363861, -0.042732588946819305, 0.016639238223433495, -0.06693511456251144, 0.032143983989953995, -0.0824398621916771, -0.030442243441939354, -0.06239714473485947, 0.039329107850790024, 0.05369935929775238, -0.136895552277565, -0.07979270815849304, -0.08962498605251312, -0.07412024587392807, 0.06428796797990799, 0.1444588452577591, -0.0028953219298273325, 0.01626107469201088, 0.04481249302625656, -0.030631324276328087, -0.010730418376624584, -0.04254350811243057, -0.031387653201818466, 0.007468748837709427, -0.09832277148962021, -0.03346755728125572, 0.14143352210521698, 0.13008859753608704, -0.058993663638830185, 0.03195489943027496, 0.09907910227775574, -0.042732588946819305, 0.031198572367429733, -0.011155853047966957, -0.07298575341701508, 0.08508701622486115, 0.06806961447000504, -0.07147309184074402, -0.05483385547995567, 0.14748415350914001, -0.011770370416343212, 0.04537973925471306, -0.015032039023935795, 0.008839595131576061, -0.019664553925395012, -0.00850870180875063, -0.06580062210559845, -0.022784411907196045, 0.013992086984217167, 0.006192443892359734, -0.0695822685956955, -0.09491929411888123, -0.04462341219186783, 0.0005377026391215622, 0.14143352210521698, 0.013519381172955036, 0.12252529710531235, -0.028740502893924713, 0.04500157758593559, 0.007705101743340492, -0.03327847644686699, 0.027227845042943954, -0.05596834793686867, -0.060506321489810944, -0.07222942262887955, -0.023824363946914673, -0.029118666425347328, -0.030631324276328087, -0.063153475522995, -0.1058860644698143, -0.053321193903684616, 0.049161385744810104, 0.00602699676528573, 0.06693511456251144, 0.06655695289373398, -0.04140901193022728, 0.0036161981988698244, 0.015126580372452736, 0.060506321489810944, -0.16866137087345123, -0.05596834793686867, 0.013235758058726788, -0.02684967964887619, 0.07449840754270554, -0.008414160460233688, -0.024580692872405052, 0.002434434136375785, 0.08697783946990967, -0.09832277148962021, 0.06693511456251144, 0.03082040697336197, 0.014464792795479298, 0.08697783946990967, 0.0030253161676228046, 0.02779509127140045, -0.032143983989953995, -0.024769775569438934, -0.006617879029363394, 0.04254350811243057, -0.1058860644698143, -0.05369935929775238, 0.031198572367429733, 0.04216534271836281, -0.07109493017196655, 0.041030850261449814, 0.07865821570158005, 0.1111803650856018, -0.09832277148962021, 0.012479429133236408, -0.031387653201818466, 0.1005917564034462, 0.022500788792967796, -0.12630695104599, 0.019286390393972397, -0.019664553925395012, 0.06580062210559845, -0.05861549824476242, 0.052564866840839386, -0.028929585590958595, -0.06012815609574318, 0.017395567148923874, 0.03479113429784775, -0.08395252376794815, -0.006050632335245609, 0.014275710098445415, 0.011344934813678265, 0.030253160744905472, 0.01035225298255682, 0.013330298475921154, -0.023729823529720306, -0.02855142019689083, -0.12857593595981598, 0.0315767377614975, 0.06088448688387871, 0.032143983989953995, -0.0038052804302424192, 0.06239714473485947, 0.07109493017196655, -0.09643194824457169, -0.031198572367429733, 0.023257117718458176, 0.003096221946179867, -0.0034743864089250565, -0.02439161017537117, 0.022784411907196045, -0.012384887784719467, -0.03914002701640129, 0.04878322035074234, 0.032900311052799225, 0.037816449999809265, -0.04008543863892555, 0.07828005403280258, 0.03252214938402176, 0.0017017403151839972, 0.004561609588563442, -0.04500157758593559, -0.07374207675457001, -0.04708148166537285, -0.024580692872405052, -0.07790189236402512, 0.0801708772778511, 0.0010399523889645934, -0.024202529340982437, 0.016828320920467377, -0.06466612964868546, -0.07676739245653152, -0.013897545635700226, 0.1134493499994278, -0.08735600113868713, 0.04121993109583855, -0.0824398621916771, -0.015032039023935795, 0.04405616596341133, -0.04254350811243057, -0.15277846157550812, 0.10891138017177582, 0.0019735461100935936, 0.04783780872821808, -0.012573969550430775, -0.014370251446962357, 0.016828320920467377]
-----------------------------------------------------------------------------
春
[-0.05140504986047745, 0.03860624134540558, 0.0650431215763092, 0.17708514630794525, -0.08854257315397263, 0.04469091817736626, -0.02832522988319397, -0.15190716087818146, -0.008864748291671276, 0.032941196113824844, -0.015736239030957222, -0.0036455621011555195, 0.030003763735294342, -0.04615963622927666, 0.07931064814329147, -0.03126266226172447, 0.027695780619978905, 0.0050355964340269566, 0.03608844056725502, 0.09064073860645294, -0.010438372381031513, 0.11246165633201599, 0.006268268451094627, -0.04615963622927666, -0.01730986312031746, 0.039445508271455765, -0.03524917736649513, 0.054971929639577866, 0.01804422028362751, -0.12840771675109863, 0.07385541498661041, 0.008340206928551197, 0.048047985881567, -0.017204955220222473, -0.016470598056912422, 0.08686403930187225, 0.06168605759739876, 0.02832522988319397, 0.03587862476706505, -0.0024784577544778585, -0.019722754135727882, -0.04469091817736626, -0.008182844147086143, -0.08686403930187225, -0.02528289146721363, 0.048467617481946945, 0.02633197419345379, 0.13260404765605927, 0.04112403839826584, 0.10071193426847458, -0.03587862476706505, -0.0105432802811265, -0.07385541498661041, 0.06084679067134857, 0.01982766203582287, -0.02024729549884796, 0.06923945248126984, -0.06840018928050995, -0.12085431814193726, 0.061266425997018814, 0.08098918199539185, 0.01804422028362751, 0.04175348952412605, 0.05035596713423729, -0.022135643288493156, -0.03587862476706505, -0.06336458772420883, 0.021086560562253, -0.054971929639577866, 0.0011146502802148461, 0.008812294341623783, -0.03084302879869938, 0.04532036930322647, 0.03776697441935539, -0.006425631232559681, -0.044481102377176285, 0.015106789767742157, 0.033151011914014816, -0.00506182387471199, -0.0039340597577393055, 0.04175348952412605, -0.003907832782715559, -0.03587862476706505, 0.027485964819788933, 0.07721248269081116, 0.013061078265309334, 0.022240551188588142, 0.03126266226172447, 0.007973028346896172, -0.0028325230814516544, 0.07679285109043121, 0.009651560336351395, -0.1678532212972641, 0.013742982409894466, 0.10826532542705536, -0.03210192918777466, 0.007081307470798492, -0.036927707493305206, 0.02958413027226925, 0.04930688440799713, 0.028744863346219063, 0.14435376226902008, 0.1368003785610199, -0.09399780631065369, 0.011802179738879204, 0.07091798633337021, 0.05581119656562805, 0.06881982088088989, -0.0310528464615345, 0.12672917544841766, -0.012536536902189255, -0.021401286125183105, -0.08266770839691162, 0.03210192918777466, 0.11330091953277588, 0.039235688745975494, 0.08602477610111237, -0.05581119656562805, -0.06672165542840958, -0.022135643288493156, -0.04762835055589676, -0.01804422028362751, 0.027485964819788933, 0.10029229521751404, 0.07889101654291153, -0.05832899361848831, -0.025492707267403603, -0.026436882093548775, -0.07343578338623047, 0.11917578428983688, -0.10742606222629547, 0.03482954204082489, 0.018463853746652603, -0.034409910440444946, 0.054971929639577866, 0.03608844056725502, -0.0022030735854059458, -0.0310528464615345, -0.1989060640335083, 0.01751967892050743, -0.05455229803919792, 0.019617844372987747, -0.15442496538162231, -0.1426752358675003, -0.010333463549613953, -0.09231927245855331, 0.1028100997209549, 0.01190708763897419, 0.060007527470588684, 0.11246165633201599, -0.017204955220222473, 0.006871491204947233, 0.010490826331079006, -0.04615963622927666, 0.048047985881567, -0.00839266087859869, -0.016470598056912422, 0.023184726014733315, 0.10239046066999435, -0.053503215312957764, -0.04259275272488594, 0.001068752957507968, 0.09735486656427383, -0.03881605714559555, -0.0805695429444313, -0.09945303201675415, -0.1028100997209549, 0.09567633271217346, 0.005586364772170782, -0.02958413027226925, -0.0436418354511261, -0.03210192918777466, -0.048467617481946945, 0.016365688294172287, 0.001213001785799861, -0.0011867746943607926, 0.026856515556573868, 0.021716009825468063, -0.032941196113824844, -0.02381417527794838, -0.04532036930322647, 0.05140504986047745, -0.03524917736649513, -0.07091798633337021, -0.02706633135676384, -0.02727614901959896, 0.16365689039230347, -0.04133385419845581, 0.11078312247991562, 0.04007495567202568, -0.025177983567118645, -0.005533910822123289, 0.04280257225036621, -0.04007495567202568, 0.014792065136134624, -0.06084679067134857, 0.030003763735294342, -0.027485964819788933, -0.05581119656562805, -0.05413266271352768, -0.031892113387584686, 0.05266394838690758, 0.009913831017911434, -0.020457111299037933, 0.011592363007366657, -0.026122156530618668, 0.09525670111179352, 0.07511431723833084, -0.057489726692438126, 0.08896220475435257, 0.0451105535030365, -0.05455229803919792, 0.054971929639577866, -0.06588239222764969, 0.03336082771420479, 0.061266425997018814, 0.07847137749195099, -0.05707009509205818, 0.020142385736107826, 0.05832899361848831, 0.057489726692438126, -0.05665045976638794, -0.09693523496389389, -0.007710757199674845, -0.06756091862916946, -0.02958413027226925, -0.029164496809244156, 0.06965908408164978, 0.012588991783559322, -0.039445508271455765, -0.05790936201810837, -0.017939312383532524, -0.10448862612247467, -0.03461972624063492, 0.00043930334504693747, 0.08182844519615173, -0.02150619402527809, -0.10113156586885452, 0.01363807450979948, -0.049726516008377075, 0.10197082906961441, -0.1057475283741951, 0.034200094640254974, -0.020876744762063026, 0.06084679067134857, -0.0162607803940773, -0.031892113387584686, 0.04469091817736626, -0.050985414534807205, -0.22660183906555176, 0.0325215607881546, 0.06546275317668915, -0.045949820429086685, -0.031892113387584686, 0.010490826331079006, 0.002714501228183508]

 

出力結果ですが、4つの四季を表現する文章の埋め込みと「春」の埋め込みが出力されています。

こちらの埋め込みを用いて、Solr でのベクトル検索を実施していきます。

まずは、下記の index.json ファイルを用意します。
vector_season のカラムに埋め込みベクトルを設定しています。

[
  {
    "id": "1",
"_text": "木々が芽吹き、柔らかな新緑が目に映る季節。温かな陽光に包まれ、花々
が咲き乱れ、空気にはほのかな香りが漂う。生命の息吹を感じさせるこの時期には、日々
が穏やかで心が弾む。",
    "vector_season": [-0.10103485733270645, 0.06211772933602333, -0.07895687222480774, 0.03667191043496132, 0.03573640435934067, -0.024884512647986412, 0.08793774992227554, -0.014313272200524807, -0.07259541749954224, -0.0009764364222064614, -0.010056710802018642, -0.08569253236055374, -0.06997599452733994, 0.06174352392554283, 0.07746005803346634, 0.06548555940389633, 0.014032619073987007, 0.021984437480568886, -0.026568425819277763, 0.051265835762023926, -0.011974502354860306, 0.033304084092378616, -0.01964566670358181, 0.06398874521255493, -0.03498799726366997, 0.09280239045619965, -0.05687888339161873, -0.07596324384212494, 0.012348704971373081, -0.10851892083883286, 0.11001573503017426, 0.10926733165979385, 0.03667191043496132, -0.06398874521255493, 0.0006226974655874074, 0.08531832695007324, -0.03311698138713837, -0.029000746086239815, -0.09018296748399734, -0.024323206394910812, 0.12947429716587067, -0.021797334775328636, -0.0016137512866407633, 0.005846924614161253, 0.07858266681432724, 0.031620170921087265, -0.05463366582989693, 0.03554930165410042, 0.06473714858293533, 0.04453017935156822, -0.14444242417812347, 0.06436295062303543, -0.07109860330820084, 0.13995198905467987, 0.026381324976682663, 0.06960178911685944, -0.06698237359523773, 0.031994372606277466, -0.04303336516022682, -0.06174352392554283, -0.07334382086992264, 0.06511135399341583, 0.028626544401049614, 0.029936254024505615, -0.06286613643169403, -0.06960178911685944, -0.026755528524518013, 0.03985263779759407, -0.02039407379925251, 0.012348704971373081, -0.02226508967578411, 0.07334382086992264, 0.026381324976682663, 0.06735657155513763, -0.14219720661640167, -0.03442669287323952, 0.10178326815366745, 0.08793774992227554, 0.048272211104631424, -0.03835582733154297, -0.002104892861098051, -0.025258714333176613, 0.017306897789239883, -0.027878137305378914, 0.11675139516592026, -0.11899661272764206, -0.016371389850974083, -0.04359466955065727, 0.06660816818475723, -0.050891634076833725, 0.03798162192106247, 0.09429920464754105, -0.08793774992227554, 0.025445817038416862, 0.06660816818475723, -0.04696249961853027, -0.05538207292556763, 0.013003560714423656, -0.049020618200302124, -0.11600298434495926, -0.021423133090138435, 0.14818446338176727, 0.14743605256080627, -0.08681514114141464, -0.003297665622085333, 0.09804123640060425, 0.06136932224035263, 0.07035019993782043, -0.049769025295972824, -0.11076414585113525, 0.020487625151872635, 0.029562052339315414, -0.009682507254183292, -0.10926733165979385, 0.09055717289447784, -0.02357480116188526, 0.15941055119037628, 0.15192648768424988, -0.02151668258011341, 0.012442256323993206, -0.05837569758296013, -0.09280239045619965, 0.04565278813242912, 0.10627370327711105, -0.013377764262259007, -0.050517428666353226, 0.04191075637936592, 0.049769025295972824, -0.05800149217247963, 0.1818627417087555, -0.03573640435934067, -0.025632917881011963, 0.010664790868759155, -0.05238844454288483, -0.015529432334005833, 0.024884512647986412, 0.05463366582989693, 0.04453017935156822, -0.09242818504571915, -0.07895687222480774, 0.010664790868759155, 0.029749153181910515, -0.14519083499908447, -0.06174352392554283, -0.03498799726366997, -0.021984437480568886, -0.019739218056201935, 0.04621409252285957, 0.16689461469650269, -0.03685901314020157, 0.014500373043119907, 0.03929133340716362, 0.07334382086992264, 0.09130557626485825, -0.005121906287968159, 0.04172365367412567, -0.05949830636382103, -0.08307310938835144, 0.05238844454288483, -0.07671165466308594, -0.0017423835815861821, 0.0029468501452356577, 0.030684661120176315, -0.10552529990673065, 0.03461379557847977, 0.005987251177430153, 0.009214753285050392, 0.03947843611240387, 0.02076827734708786, -0.050517428666353226, -0.03910423442721367, -0.015997186303138733, -0.012348704971373081, 0.049020618200302124, -0.05538207292556763, 0.026568425819277763, -0.004139622673392296, -0.014126170426607132, -0.021984437480568886, -0.04078814759850502, 0.0016020573675632477, 0.03798162192106247, -0.016932694241404533, -0.0031573392916470766, 0.04078814759850502, -0.07035019993782043, 0.09242818504571915, -0.011880951002240181, 0.06847918033599854, -0.012348704971373081, 0.02394900470972061, -0.023387698456645012, -0.04172365367412567, -0.031433068215847015, 0.021423133090138435, -0.04658829793334007, 0.06997599452733994, -0.07484063506126404, -0.012255154550075531, -0.11600298434495926, 0.01852305792272091, -0.013845518231391907, 0.06548555940389633, -0.03742031753063202, -0.014874576590955257, -0.04415597766637802, -0.0015669758431613445, 0.02058117464184761, -0.05725308880209923, -0.0026428101118654013, 0.032181475311517715, 0.015529432334005833, 0.04359466955065727, -0.07820846885442734, 0.016090737655758858, 0.049394819885492325, -0.04471728205680847, -0.021610233932733536, -0.026194222271442413, -0.001391568104736507, 0.03611060604453087, -0.005332395434379578, 0.003414604114368558, 0.020487625151872635, 0.02114248089492321, 0.05912410467863083, 0.14519083499908447, -0.024884512647986412, -0.06511135399341583, 0.10627370327711105, 0.04546568542718887, -0.06398874521255493, -0.027691036462783813, 0.050517428666353226, -0.012068052776157856, 0.09055717289447784, 0.05575627461075783, 0.07633744925260544, 0.011553523130714893, -0.029936254024505615, -0.07521484047174454, -0.08307310938835144, 0.050891634076833725, -0.04434307664632797, -0.03685901314020157, -0.031620170921087265, -0.007437288295477629, 0.06623396277427673, -0.022171538323163986, -0.06548555940389633, 0.16090737283229828, -0.049020618200302124, -0.04340757057070732, -0.014874576590955257, -0.05575627461075783, 0.012910010293126106]
  },
  {
    "id": "2",
    "_text": "強い日差しが降り注ぎ、青空が広がる日が続く。蝉の声が響き渡り、冷たい飲み物や川辺の涼が恋しくなる。鮮やかな風景が広がり、エネルギーに満ちた時間が流れる。",
    "vector_season": [-0.03096146322786808, 0.03222152218222618, 0.0004640844417735934, 0.07668362557888031, 0.03474164381623268, -0.02016095258295536, -0.002385112689808011, -0.06768319755792618, 0.023761123418807983, -0.13536639511585236, -0.011115524917840958, 0.03510165959596634, 0.08532403409481049, 0.03348158299922943, -0.015750745311379433, 0.08244390040636063, -0.04356205835938454, -0.028801361098885536, 0.09432445466518402, 0.1375264972448349, 0.030061420053243637, 0.03942186385393143, -0.022231049835681915, -0.014040663838386536, -0.09576452523469925, -0.13968659937381744, -0.05256248265504837, -0.02682126685976982, 0.060122840106487274, -0.07956375926733017, 0.06516308337450027, 0.11592547595500946, 0.025921225547790527, -0.07632360607385635, 0.11520544439554214, 0.15912751853466034, 0.09216435253620148, -0.04014189913868904, -0.057242706418037415, -0.028801361098885536, 0.08316393196582794, 0.04212199151515961, -0.0009112930856645107, 0.05076240003108978, 0.04716222733259201, 0.01620076596736908, 0.023401105776429176, 0.11664551496505737, 0.0716433897614479, 0.07956375926733017, -0.04284202679991722, 0.02556120790541172, -0.08388396352529526, 0.21024993062019348, 0.011385537683963776, 0.13896657526493073, 0.03258154168725014, 0.10152480006217957, -0.024661164730787277, -0.17856843769550323, -0.009180434048175812, -0.023581113666296005, 0.08028379827737808, 0.07704364508390427, 0.029161378741264343, 0.010260485112667084, -0.08136384934186935, 0.03474164381623268, 0.07740365713834763, -0.03330157324671745, -0.03870182856917381, -0.07200340181589127, 0.06696316599845886, 0.011115524917840958, -0.13032616674900055, -0.043742068111896515, 0.06840323656797409, 0.00810038298368454, -0.02268107235431671, -0.018000850453972816, 0.05004236474633217, 0.1029648631811142, 0.0008662909385748208, 0.058322757482528687, 0.11520544439554214, -0.07056333869695663, -0.06300298124551773, 0.08136384934186935, 0.020790982991456985, -0.04968234896659851, 0.04122195020318031, -0.016740791499614716, -0.012240578420460224, 0.020880987867712975, 0.04158196598291397, -0.09180434048175812, -0.02160102128982544, 0.011880561709403992, 0.005805274471640587, -0.049322329461574554, 0.03312156721949577, 0.13536639511585236, 0.12384585291147232, -0.058682773262262344, 0.11880561709403992, 0.027541302144527435, 0.01611076109111309, 0.07704364508390427, -0.1130453422665596, 0.06804321706295013, 0.06804321706295013, 0.02034096233546734, -0.011790556833148003, -0.04158196598291397, 0.12960612773895264, -0.10656503587961197, 0.0979246273636818, 0.08532403409481049, 0.06264296174049377, 0.00270012766122818, -0.07668362557888031, -0.12672598659992218, -0.028801361098885536, 0.08748413622379303, -0.06552309542894363, -0.03726176172494888, -0.060122840106487274, -0.07956375926733017, -0.02970140427350998, 0.05940280854701996, 0.026641258969902992, 0.006255295593291521, 0.11160527169704437, -0.039781879633665085, -0.034381624311208725, 0.01341063342988491, 0.10440493375062943, 0.017820842564105988, -0.08568405359983444, -0.060122840106487274, -0.03726176172494888, 0.06192292645573616, -0.06552309542894363, 0.004477711860090494, -0.04284202679991722, -0.010890514589846134, 6.504213524749503e-05, -0.0565226711332798, 0.1764083355665207, -0.0835239514708519, 0.04212199151515961, 0.02304108813405037, -0.02448115684092045, -0.054722584784030914, -0.07308345288038254, -0.0716433897614479, 0.029161378741264343, -0.01737082190811634, 0.07308345288038254, -0.0002854822378139943, -0.0013838154263794422, 0.002621373860165477, 0.07452352344989777, -0.07200340181589127, 0.01746082492172718, 0.030421437695622444, -0.010620501823723316, 0.04284202679991722, 0.00032626543543301523, -0.0020475967321544886, -0.014670693315565586, -0.05004236474633217, 0.012510591186583042, 0.029161378741264343, 0.053282517939805984, 0.054722584784030914, 0.00945044681429863, 0.012690600007772446, -0.039781879633665085, 0.0031276477966457605, 0.018270863220095634, 0.04860229790210724, -0.0455421507358551, -0.05076240003108978, -0.017010804265737534, -0.04320204257965088, 0.008505402132868767, -0.05112241581082344, 0.012510591186583042, 0.04176197573542595, 0.036901745945215225, -0.03240153193473816, 0.03474164381623268, -0.023581113666296005, 0.005220246966928244, 0.008190386928617954, -0.054362569004297256, -0.08208388090133667, -0.0910843014717102, -0.005107741337269545, 0.03762177750468254, 0.10656503587961197, -0.06264296174049377, -0.023581113666296005, -0.05616265535354614, 0.018270863220095634, -0.008190386928617954, 0.09504449367523193, 0.07380349189043045, -0.027541302144527435, -0.019620927050709724, 0.005197745747864246, -0.03096146322786808, -0.013950658962130547, -0.010890514589846134, 0.026641258969902992, -0.03474164381623268, -0.05940280854701996, 0.09036426991224289, -0.008775414898991585, -0.020790982991456985, 0.010260485112667084, 0.058322757482528687, 0.026281241327524185, 0.04824227839708328, 0.023941131308674812, 0.018000850453972816, 0.04716222733259201, -0.03600170090794563, 0.09936469793319702, 0.012690600007772446, -0.02169102616608143, 0.018270863220095634, -0.016740791499614716, 0.019260911270976067, 0.15120714902877808, 0.04608217626810074, -0.036901745945215225, 0.009855465963482857, -0.1029648631811142, -0.05004236474633217, -0.00774036580696702, 0.04212199151515961, -0.026281241327524185, -0.0017213313840329647, 0.012420587241649628, -0.007695363834500313, 0.0514824315905571, -0.03726176172494888, -0.1274460256099701, 0.05256248265504837, -0.00868541095405817, -0.04266201704740524, -0.1080051064491272, 0.02007094956934452, 0.006975329481065273]
  },
  {
    "id": "3",
"_text": "木々の葉が色づき、黄金や赤に染まる景色が広がる。涼やかな風が吹き、収穫の恵みを感じる季節。夕暮れが美しく、静けさの中に少しの物寂しさが漂う。",
    "vector_season": [-0.03913220763206482, 0.057790182530879974, -0.013869643211364746, 0.002084574429318309, 0.021134695038199425, -0.03269273042678833, 0.025757908821105957, -0.048873983323574066, -0.06670638173818588, 0.03401365131139755, 0.0032403781078755856, -0.17304031550884247, 0.014447545632719994, 0.05019490048289299, 0.05481811612844467, 0.05845063924789429, -0.025097450241446495, -0.06769707053899765, 0.12746863067150116, 0.036325257271528244, -0.023611417040228844, -0.04392053931951523, -0.02105213701725006, -0.008462133817374706, -0.09972934424877167, -0.006810985505580902, 0.06934821605682373, -0.05878087133169174, 0.012135937809944153, 0.009865609928965569, 0.1069943904876709, 0.11029668897390366, -0.041774045675992966, -0.027409058064222336, 0.08123648166656494, 0.08916199207305908, -0.007099936716258526, 0.022785842418670654, -0.1017107218503952, -0.10435255616903305, 0.11954312026500702, 0.026748597621917725, -0.001589230028912425, -0.05448788404464722, 0.04326007887721062, 0.015603349544107914, -0.031206699088215828, 0.037150830030441284, 0.10303163528442383, 0.001068086363375187, -0.12878954410552979, -0.011062691919505596, -0.09444566816091537, 0.16247296333312988, -0.021134695038199425, 0.1637938916683197, -0.10963623225688934, 0.020887022837996483, 0.0027037549298256636, -0.05580880492925644, 0.0254276804625988, 0.03269273042678833, -0.011227807030081749, 0.00396275520324707, 0.04127870127558708, 0.001424115151166916, -0.056139033287763596, 0.06439477205276489, 0.003983394708484411, -0.03566479682922363, -0.03401365131139755, -0.04160892963409424, 0.016181251034140587, -0.00895747821778059, -0.13869643211364746, -0.08123648166656494, 0.016098693013191223, 0.048213522881269455, 0.04854375123977661, -0.06340408325195312, 0.029885780066251755, 0.008255740627646446, 0.062413398176431656, 0.022785842418670654, 0.08255740255117416, -0.12746863067150116, -0.07199005782604218, 0.019318431615829468, 0.022455614060163498, -0.04722283408045769, 0.07265051454305649, 0.140677809715271, -0.07430166006088257, 0.024436991661787033, 0.01585102081298828, -0.008090625517070293, -0.10303163528442383, 0.03351830691099167, -0.022125383839011192, -0.11095714569091797, -0.021299809217453003, 0.1017107218503952, 0.1129385232925415, -0.09114336967468262, -0.07165982574224472, 0.04359030723571777, 0.13143138587474823, 0.14265918731689453, 0.047553062438964844, -0.13143138587474823, 0.012135937809944153, 0.03170204162597656, -0.0845387801527977, -0.09180383384227753, 0.05679949373006821, -0.11690127849578857, 0.10567347705364227, 0.04590191692113876, 0.02707882784307003, 0.01011328212916851, -0.12152449786663055, -0.08850153535604477, -0.041113585233688354, 0.10369209945201874, 0.022785842418670654, -0.06076224893331528, -0.05184604972600937, -0.0785946473479271, -0.0043136244639754295, 0.12680816650390625, -0.07199005782604218, 0.03516945242881775, 0.014447545632719994, 0.12482679635286331, -0.04392053931951523, -0.017419612035155296, 0.15917067229747772, 0.027574172243475914, -0.030546238645911217, -0.10633393377065659, 0.056139033287763596, 0.02295095846056938, -0.03913220763206482, -0.03269273042678833, -0.07760395854711533, -0.10038980096578598, 0.030050894245505333, 0.03483922407031059, 0.042599618434906006, 0.035334568470716476, 0.030050894245505333, 0.0508553609251976, 0.09114336967468262, 0.0785946473479271, -0.05712972208857536, -0.037150830030441284, -0.02939043566584587, -0.01436498761177063, 0.034674108028411865, -0.0009081314201466739, 0.03649037331342697, 0.002394164679571986, 0.034508995711803436, -0.022125383839011192, 0.05745995044708252, -0.020887022837996483, 0.025923024863004684, -0.012548725120723248, -0.014612659811973572, 0.04292985051870346, -0.05184604972600937, -0.055478572845458984, -0.0023838449269533157, -0.020556792616844177, 0.06901799142360687, 0.04045312851667404, 0.012135937809944153, -0.012961512431502342, 0.010154560208320618, -0.006150526460260153, 0.02080446481704712, 0.009205150417983532, -0.041113585233688354, -0.08024579286575317, 0.026748597621917725, 0.05580880492925644, 0.046562373638153076, -0.0023116073571145535, -0.012631282210350037, 0.017419612035155296, 0.014034758321940899, -0.06967844814062119, 0.011310364119708538, -0.04326007887721062, 0.033022962510585785, 0.0015066725900396705, -0.013869643211364746, -0.10633393377065659, -0.06604592502117157, -0.044911228120326996, 0.06439477205276489, 0.007223772816359997, 0.10038980096578598, 0.014942890033125877, -0.055478572845458984, -0.09642704576253891, 0.006604592315852642, -0.003302296157926321, -0.05712972208857536, -0.017997514456510544, 0.017006825655698776, -0.014447545632719994, 0.03285784646868706, -0.10633393377065659, 0.041113585233688354, 0.030546238645911217, -0.028069516643881798, 0.02856486104428768, -0.08652015775442123, -0.03995778411626816, 0.07430166006088257, -0.0957665890455246, 0.008668527007102966, -0.032197386026382446, -0.05646926164627075, 0.04326007887721062, 0.1294500082731247, -0.015603349544107914, -0.07199005782604218, -0.03269273042678833, -0.01915331743657589, -0.030050894245505333, 0.029885780066251755, -0.07595281302928925, -0.06340408325195312, 0.02476722002029419, 0.09906888008117676, -0.06670638173818588, 0.016181251034140587, -0.05977156013250351, -0.00714121526107192, -0.034674108028411865, -0.02856486104428768, 0.08255740255117416, -0.016511481255292892, -0.026913713663816452, 0.06373431533575058, 0.051515817642211914, -0.09114336967468262, -0.11425944417715073, 0.06703661382198334, -0.04953444004058838, 0.000446325953816995, 0.039462439715862274, -0.053827427327632904, 0.010030724108219147]
  },
  {
    "id": "4",
"_text": "冷たい空気が肌を刺し、木々が静かに眠る時期。雪が積もると世界は白一色になり、しんとした静寂が広がる。温かな食べ物や囲炉裏の火が恋しくなる季節。",

    "vector_season": [-0.027227845042943954, 0.05180853605270386, 0.0673132836818695, -0.041030850261449814, -0.0038052804302424192, -0.063153475522995, 0.003190763061866164, -0.03422388806939125, -0.04745964705944061, 0.023446200415492058, -0.0620189793407917, 0.044245246797800064, 0.036303792148828506, -0.027416927739977837, 0.039329107850790024, 0.04405616596341133, -0.012101264670491219, -0.1111803650856018, 0.09075947850942612, 0.011864911764860153, 0.08395252376794815, 0.01947547309100628, -0.0060979025438427925, 0.022122623398900032, -0.020515425130724907, -0.023446200415492058, -0.031198572367429733, -0.05294303223490715, 0.006806961260735989, -0.07828005403280258, 0.011344934813678265, 0.08395252376794815, 0.03724920377135277, -0.03573654592037201, 0.0673132836818695, 0.15277846157550812, 0.10361707210540771, 0.025526104494929314, -0.0024580692406743765, -0.0824398621916771, 0.0865996703505516, 0.025715187191963196, -0.0030489512719213963, 0.09000315517187119, -0.015032039023935795, 0.07714556157588959, -0.00798872485756874, 0.06504429876804352, 0.060506321489810944, 0.1005917564034462, -0.09907910227775574, 0.020893588662147522, -0.09756644070148468, 0.18983858823776245, 0.01947547309100628, 0.12781959772109985, 0.020042719319462776, 0.029496831819415092, -0.052564866840839386, -0.13613922894001007, 0.013992086984217167, -0.030442243441939354, -0.11723099648952484, 0.04254350811243057, 0.05634651333093643, -0.11647466570138931, -0.08357435464859009, 0.0044434331357479095, 0.06504429876804352, 0.04651423543691635, -0.04821597412228584, -0.004419797565788031, 0.11798732727766037, 0.03838369622826576, -0.07298575341701508, -0.08546517789363861, -0.042732588946819305, 0.016639238223433495, -0.06693511456251144, 0.032143983989953995, -0.0824398621916771, -0.030442243441939354, -0.06239714473485947, 0.039329107850790024, 0.05369935929775238, -0.136895552277565, -0.07979270815849304, -0.08962498605251312, -0.07412024587392807, 0.06428796797990799, 0.1444588452577591, -0.0028953219298273325, 0.01626107469201088, 0.04481249302625656, -0.030631324276328087, -0.010730418376624584, -0.04254350811243057, -0.031387653201818466, 0.007468748837709427, -0.09832277148962021, -0.03346755728125572, 0.14143352210521698, 0.13008859753608704, -0.058993663638830185, 0.03195489943027496, 0.09907910227775574, -0.042732588946819305, 0.031198572367429733, -0.011155853047966957, -0.07298575341701508, 0.08508701622486115, 0.06806961447000504, -0.07147309184074402, -0.05483385547995567, 0.14748415350914001, -0.011770370416343212, 0.04537973925471306, -0.015032039023935795, 0.008839595131576061, -0.019664553925395012, -0.00850870180875063, -0.06580062210559845, -0.022784411907196045, 0.013992086984217167, 0.006192443892359734, -0.0695822685956955, -0.09491929411888123, -0.04462341219186783, 0.0005377026391215622, 0.14143352210521698, 0.013519381172955036, 0.12252529710531235, -0.028740502893924713, 0.04500157758593559, 0.007705101743340492, -0.03327847644686699, 0.027227845042943954, -0.05596834793686867, -0.060506321489810944, -0.07222942262887955, -0.023824363946914673, -0.029118666425347328, -0.030631324276328087, -0.063153475522995, -0.1058860644698143, -0.053321193903684616, 0.049161385744810104, 0.00602699676528573, 0.06693511456251144, 0.06655695289373398, -0.04140901193022728, 0.0036161981988698244, 0.015126580372452736, 0.060506321489810944, -0.16866137087345123, -0.05596834793686867, 0.013235758058726788, -0.02684967964887619, 0.07449840754270554, -0.008414160460233688, -0.024580692872405052, 0.002434434136375785, 0.08697783946990967, -0.09832277148962021, 0.06693511456251144, 0.03082040697336197, 0.014464792795479298, 0.08697783946990967, 0.0030253161676228046, 0.02779509127140045, -0.032143983989953995, -0.024769775569438934, -0.006617879029363394, 0.04254350811243057, -0.1058860644698143, -0.05369935929775238, 0.031198572367429733, 0.04216534271836281, -0.07109493017196655, 0.041030850261449814, 0.07865821570158005, 0.1111803650856018, -0.09832277148962021, 0.012479429133236408, -0.031387653201818466, 0.1005917564034462, 0.022500788792967796, -0.12630695104599, 0.019286390393972397, -0.019664553925395012, 0.06580062210559845, -0.05861549824476242, 0.052564866840839386, -0.028929585590958595, -0.06012815609574318, 0.017395567148923874, 0.03479113429784775, -0.08395252376794815, -0.006050632335245609, 0.014275710098445415, 0.011344934813678265, 0.030253160744905472, 0.01035225298255682, 0.013330298475921154, -0.023729823529720306, -0.02855142019689083, -0.12857593595981598, 0.0315767377614975, 0.06088448688387871, 0.032143983989953995, -0.0038052804302424192, 0.06239714473485947, 0.07109493017196655, -0.09643194824457169, -0.031198572367429733, 0.023257117718458176, 0.003096221946179867, -0.0034743864089250565, -0.02439161017537117, 0.022784411907196045, -0.012384887784719467, -0.03914002701640129, 0.04878322035074234, 0.032900311052799225, 0.037816449999809265, -0.04008543863892555, 0.07828005403280258, 0.03252214938402176, 0.0017017403151839972, 0.004561609588563442, -0.04500157758593559, -0.07374207675457001, -0.04708148166537285, -0.024580692872405052, -0.07790189236402512, 0.0801708772778511, 0.0010399523889645934, -0.024202529340982437, 0.016828320920467377, -0.06466612964868546, -0.07676739245653152, -0.013897545635700226, 0.1134493499994278, -0.08735600113868713, 0.04121993109583855, -0.0824398621916771, -0.015032039023935795, 0.04405616596341133, -0.04254350811243057, -0.15277846157550812, 0.10891138017177582, 0.0019735461100935936, 0.04783780872821808, -0.012573969550430775, -0.014370251446962357, 0.016828320920467377]
  }
]

 

次に json ファイルを solr のインデックスに追加します。

curl 'http://localhost:8983/solr/seasons/update?commit=true&indent=true' --data-binary @index.json -H 'Content-Type: text/json'
{
  "responseHeader":{
    "status":0,
    "QTime":561}}

 

Solr 検索

最後に Solr でのベクトル検索を試していきます。

Solr Admin にアクセスします。

http://localhost:8983/solr/#/seasons/query

下記の通り、フォームに値を入力します。
先ほど実行したプログラムの出力結果の春の埋め込みをクエリに指定しています。
topK の値は上位何件の取得するかを指定しています。
ソート順はスコアが高い順(類似度が高い順)で並び替えされています。


Request-Handler (qt) : /select

q: {!knn f=vector_season topK=4}[-0.05140504986047745, 0.03860624134540558, 0.0650431215763092, 0.17708514630794525, -0.08854257315397263, 0.04469091817736626, -0.02832522988319397, -0.15190716087818146, -0.008864748291671276, 0.032941196113824844, -0.015736239030957222, -0.0036455621011555195, 0.030003763735294342, -0.04615963622927666, 0.07931064814329147, -0.03126266226172447, 0.027695780619978905, 0.0050355964340269566, 0.03608844056725502, 0.09064073860645294, -0.010438372381031513, 0.11246165633201599, 0.006268268451094627, -0.04615963622927666, -0.01730986312031746, 0.039445508271455765, -0.03524917736649513, 0.054971929639577866, 0.01804422028362751, -0.12840771675109863, 0.07385541498661041, 0.008340206928551197, 0.048047985881567, -0.017204955220222473, -0.016470598056912422, 0.08686403930187225, 0.06168605759739876, 0.02832522988319397, 0.03587862476706505, -0.0024784577544778585, -0.019722754135727882, -0.04469091817736626, -0.008182844147086143, -0.08686403930187225, -0.02528289146721363, 0.048467617481946945, 0.02633197419345379, 0.13260404765605927, 0.04112403839826584, 0.10071193426847458, -0.03587862476706505, -0.0105432802811265, -0.07385541498661041, 0.06084679067134857, 0.01982766203582287, -0.02024729549884796, 0.06923945248126984, -0.06840018928050995, -0.12085431814193726, 0.061266425997018814, 0.08098918199539185, 0.01804422028362751, 0.04175348952412605, 0.05035596713423729, -0.022135643288493156, -0.03587862476706505, -0.06336458772420883, 0.021086560562253, -0.054971929639577866, 0.0011146502802148461, 0.008812294341623783, -0.03084302879869938, 0.04532036930322647, 0.03776697441935539, -0.006425631232559681, -0.044481102377176285, 0.015106789767742157, 0.033151011914014816, -0.00506182387471199, -0.0039340597577393055, 0.04175348952412605, -0.003907832782715559, -0.03587862476706505, 0.027485964819788933, 0.07721248269081116, 0.013061078265309334, 0.022240551188588142, 0.03126266226172447, 0.007973028346896172, -0.0028325230814516544, 0.07679285109043121, 0.009651560336351395, -0.1678532212972641, 0.013742982409894466, 0.10826532542705536, -0.03210192918777466, 0.007081307470798492, -0.036927707493305206, 0.02958413027226925, 0.04930688440799713, 0.028744863346219063, 0.14435376226902008, 0.1368003785610199, -0.09399780631065369, 0.011802179738879204, 0.07091798633337021, 0.05581119656562805, 0.06881982088088989, -0.0310528464615345, 0.12672917544841766, -0.012536536902189255, -0.021401286125183105, -0.08266770839691162, 0.03210192918777466, 0.11330091953277588, 0.039235688745975494, 0.08602477610111237, -0.05581119656562805, -0.06672165542840958, -0.022135643288493156, -0.04762835055589676, -0.01804422028362751, 0.027485964819788933, 0.10029229521751404, 0.07889101654291153, -0.05832899361848831, -0.025492707267403603, -0.026436882093548775, -0.07343578338623047, 0.11917578428983688, -0.10742606222629547, 0.03482954204082489, 0.018463853746652603, -0.034409910440444946, 0.054971929639577866, 0.03608844056725502, -0.0022030735854059458, -0.0310528464615345, -0.1989060640335083, 0.01751967892050743, -0.05455229803919792, 0.019617844372987747, -0.15442496538162231, -0.1426752358675003, -0.010333463549613953, -0.09231927245855331, 0.1028100997209549, 0.01190708763897419, 0.060007527470588684, 0.11246165633201599, -0.017204955220222473, 0.006871491204947233, 0.010490826331079006, -0.04615963622927666, 0.048047985881567, -0.00839266087859869, -0.016470598056912422, 0.023184726014733315, 0.10239046066999435, -0.053503215312957764, -0.04259275272488594, 0.001068752957507968, 0.09735486656427383, -0.03881605714559555, -0.0805695429444313, -0.09945303201675415, -0.1028100997209549, 0.09567633271217346, 0.005586364772170782, -0.02958413027226925, -0.0436418354511261, -0.03210192918777466, -0.048467617481946945, 0.016365688294172287, 0.001213001785799861, -0.0011867746943607926, 0.026856515556573868, 0.021716009825468063, -0.032941196113824844, -0.02381417527794838, -0.04532036930322647, 0.05140504986047745, -0.03524917736649513, -0.07091798633337021, -0.02706633135676384, -0.02727614901959896, 0.16365689039230347, -0.04133385419845581, 0.11078312247991562, 0.04007495567202568, -0.025177983567118645, -0.005533910822123289, 0.04280257225036621, -0.04007495567202568, 0.014792065136134624, -0.06084679067134857, 0.030003763735294342, -0.027485964819788933, -0.05581119656562805, -0.05413266271352768, -0.031892113387584686, 0.05266394838690758, 0.009913831017911434, -0.020457111299037933, 0.011592363007366657, -0.026122156530618668, 0.09525670111179352, 0.07511431723833084, -0.057489726692438126, 0.08896220475435257, 0.0451105535030365, -0.05455229803919792, 0.054971929639577866, -0.06588239222764969, 0.03336082771420479, 0.061266425997018814, 0.07847137749195099, -0.05707009509205818, 0.020142385736107826, 0.05832899361848831, 0.057489726692438126, -0.05665045976638794, -0.09693523496389389, -0.007710757199674845, -0.06756091862916946, -0.02958413027226925, -0.029164496809244156, 0.06965908408164978, 0.012588991783559322, -0.039445508271455765, -0.05790936201810837, -0.017939312383532524, -0.10448862612247467, -0.03461972624063492, 0.00043930334504693747, 0.08182844519615173, -0.02150619402527809, -0.10113156586885452, 0.01363807450979948, -0.049726516008377075, 0.10197082906961441, -0.1057475283741951, 0.034200094640254974, -0.020876744762063026, 0.06084679067134857, -0.0162607803940773, -0.031892113387584686, 0.04469091817736626, -0.050985414534807205, -0.22660183906555176, 0.0325215607881546, 0.06546275317668915, -0.045949820429086685, -0.031892113387584686, 0.010490826331079006, 0.002714501228183508]

sort: score desc

fl: _text,score

Solr検索

 

返却結果を見ますと、「木々が芽吹き〜穏やかで心が弾む」の文章が1番目に返却されています。

この文章が春を表現する文章ですので、類似度の比較から想定通りの期待値を得られたことが分かります。

 

まとめ

今回は Solr✖️Bedrock にてベクトル検索を実現しましたが、組み合わせは他にも多数あります。Elasticsearch を用いますと、埋め込みの作成からクエリ検索までを通しで実現可能になります。

また、次元数を今回は 256 次元で実施しましたが、1028 次元などに増やすことでより精度の高いベクトル検索が可能となります。

それぞれユースケースに合った方式を選定していただくのが良いと考えております。

最後にこの記事がベクトル検索を導入する方の一助になれば幸いです。

 

alt

廣瀬 達也  Tatsuya Hirose

プロダクト開発統括部 グロース開発部 dodaサイト開発1グループ エンジニア

2023年6月にパーソルキャリアへ中途入社。

※2024年12月現在の情報です。