売却査定の依頼が来たときに、自社の過去の成約記録と査定書から立地・面積・築年数・間取りの近い取引事例を探し、査定書に載せる比較事例を根拠付きで並べる
中古マンションの売却査定の依頼が来たら、自社の過去の成約記録と査定書から、立地・面積・築年数・間取りの近い事例を探して並べ、査定物件との違いを成約記録の番号付きで書き出します。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 対象業界
- 不動産/建設/金融
- 対象部門
- 営業
- 対象業務
- 情報検索/比較検討
- 主な課題
- 属人化している/情報が見つからない/書類作成に時間がかかる
- AIで行う処理
- 検索(RAG)
- 主な効果
- 品質標準化/対応スピード向上/属人化解消/検索時間短縮
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 売却の相談を受け、査定物件の所在地、マンション名、部屋、面積、間取り、築年を聞き取る
- 基幹の仕組みで、同じ市区や駅の成約を検索し、一覧を表計算に書き出す
- 一覧を面積や築年で並べ替え、近そうな事例に印を付ける
- 地図で査定物件からの距離を確かめ、離れすぎたものを外す
- 同じマンションの過去の成約や査定が無いかを、マンション名で別に探す
- 選んだ3〜5件を、査定書の比較事例の欄に書き写し、違いを書く
- 自動基幹の仕組みから新しい成約を取り出し、所在地を緯度経度に変え、建物の番号・面積・築年・間取り・階・向き・成約日・成約価格を付けて検索基盤に登録する
- 自動マンション名の表記を建物の番号にそろえる(「壱番館」「1番館」を同じ建物に)
- 自動過去の査定書から、査定した価格と選ばれた比較事例の番号を取り出し、成約記録に結びつける
- 人営業担当が、査定物件の所在地、建物、面積、間取り、築年、階を入れる
- 自動同じ建物の過去の成約を別に取り出す
- 自動距離・面積・築年・成約日の近さを掛け合わせた点数で、周辺の成約を並べる
- 自動Claude が、上位の事例ごとに査定物件との違い(距離、階、向き、築年、面積、成約の時期)を、成約記録の番号付きで書き出す
- 人営業担当が事例を読み、査定書に載せる3〜5件を選ぶ
- 人営業担当が価格の補正を行い、店長が査定書を確かめる
各工程の詳しい説明を読む
- 売却の相談を受け、査定物件の所在地、マンション名、部屋、面積、間取り、築年を聞き取る
- 基幹の仕組みで、同じ市区や駅の成約を検索し、一覧を表計算に書き出す
- 一覧を面積や築年で並べ替え、近そうな事例に印を付ける
- 地図で査定物件からの距離を確かめ、離れすぎたものを外す
- 同じマンションの過去の成約や査定が無いかを、マンション名で別に探す
- 選んだ3〜5件を、査定書の比較事例の欄に書き写し、違いを書く
(a)絞り方が担当ごとに違う。 2番目で「同じ駅」で絞る担当と「同じ町名」で絞る担当では、同じ査定物件に違う事例が並びます。 店長が査定書を見比べると、担当ごとに価格の根拠が揃っていません。
(b)軸を1つずつ見ると、全体の近さが分からない。 3番目で面積で並べ、4番目で距離を見て、築年を目で追う。どの事例が総合して近いのかは、担当の感覚で決まります。 経験の浅い担当ほど、距離は近いが築年が離れた事例を選びます。
(c)同じマンションの事例を見落とす。 5番目はマンション名の書き方(「〇〇パークハウス」「〇〇パークハウス壱番館」)で当たらないことがあります。いちばん強い比較材料を、表記の揺れで落とします。
(d)根拠の説明が後付けになる。 6番目で違いを書くとき、なぜこの事例を選んだかは書かれません。依頼者に「なぜこの事例なのか」と聞かれると、担当は記憶で答えます。
取り込み(毎晩)
- 【自動】 基幹の仕組みから新しい成約を取り出し、所在地を緯度経度に変え、建物の番号・面積・築年・間取り・階・向き・成約日・成約価格を付けて検索基盤に登録する
- 【自動】 マンション名の表記を建物の番号にそろえる(「壱番館」「1番館」を同じ建物に)
- 【自動】 過去の査定書から、査定した価格と選ばれた比較事例の番号を取り出し、成約記録に結びつける
査定の依頼が来たとき
- 【人】 営業担当が、査定物件の所在地、建物、面積、間取り、築年、階を入れる
- 【自動】 同じ建物の過去の成約を別に取り出す
- 【自動】 距離・面積・築年・成約日の近さを掛け合わせた点数で、周辺の成約を並べる
- 【自動】 Claude が、上位の事例ごとに査定物件との違い(距離、階、向き、築年、面積、成約の時期)を、成約記録の番号付きで書き出す
- 【人】 営業担当が事例を読み、査定書に載せる3〜5件を選ぶ
- 【人】 営業担当が価格の補正を行い、店長が査定書を確かめる
6番目で、4つの近さを掛け合わせるのが、この設計の分かれ目です。 足し合わせると、距離がとても近いだけで築年が大きく離れた事例が上に来ます。掛け合わせれば、どれか1つの軸が大きく離れた事例は点数が下がります。
8番目と9番目を人に残しているのは、査定価格の意見が宅地建物取引業者の責任だからです。 並んだ事例は候補で、どれを根拠にし、どう補正するかは担当と店長が決めます。
02今回想定するシステム構成
【取り込み】基幹の仕組みの成約/過去の査定書
▼【トリガー】毎晩
AWS Lambda ── 所在地を緯度経度に、マンション名を建物の番号にそろえる
▼
Amazon OpenSearch Service(成約事例の索引。geo_point、面積、築年、成約日)
【査定の依頼】営業担当が査定物件の条件を入れる
▼
Amazon OpenSearch Service
├─ 同じ建物:term(建物の番号)
└─ 周辺の事例:function_score
├─ filter:種別、成約日の範囲、geo_distance(半径3km)
└─ gauss:距離・面積・築年・成約日(score_mode:multiply)
▼
Claude(Amazon Bedrock)── 検索結果のブロックで渡し、違いを引用付きで書き出す
▼
査定書の作成の仕組み(比較事例の候補の欄)| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Amazon OpenSearch Service(function_score の減衰関数、geo_distance、文書レベルのセキュリティ) | Azure AI Search、Vertex AI Search(Agent Search) |
| 生成AI | Claude(Amazon Bedrock。事例ごとの違いを引用付きで書き出す) | Gemini API、OpenAI API |
| 連携 | AWS Lambda(毎晩の取り込み、建物の名寄せ、検索の呼び出し) | AWS Step Functions |
| 保管 | Amazon S3(取り込みの記録と、査定ごとの検索の記録) | ― |
| 基幹 | 既存の基幹の仕組みと査定書の作成の仕組み | ― |
基幹の仕組みと査定書の作成の仕組みには、比較事例の候補を返すだけです。 査定書の比較事例の欄を埋めるのは営業担当で、この構成が査定価格の欄に書き込むことはありません。
近さの点数は、function_score の減衰関数で作ります。 公式のドキュメントでは、減衰関数は近さや新しさで結果を並べたいときに使うもので、ガウス・指数・線形の3つの曲線があり、数値・日付・位置(geo_point)の項目に使えます。origin(基準の値)から offset の範囲は点数1、offset+scale 離れたところで点数が decay(既定0.5)になります。
複数の関数の点数は score_mode でまとめます。 既定は掛け算(multiply)で、足し算・平均・最大・最小なども選べます。本記事は既定の掛け算を使います。
周辺の範囲は、geo_distance で先に絞ります。 公式のドキュメントでは、geo_distance は指定した点から指定した距離の範囲にある位置の文書を返すクエリで、項目は geo_point 型である必要があります。半径3kmで絞ってから点数を付ければ、遠くの事例に点数を計算する無駄が無くなります。
03どうやって実装するのか
処理の起点を決める
取り込みと検索で、起点が2つあります。
取り込みは、毎晩の定時で行います。 成約は契約日の翌日以降に基幹の仕組みに確定して入るので、毎晩で足ります。 査定書は作成のたびに保存されますが、比較事例として使うのは成約の記録で、査定書から取り込むのは「そのとき選ばれた事例」と査定した価格だけです。
成約の取り消しも、毎晩の取り込みで反映します。 契約が解除された成約が索引に残ると、存在しない取引を比較事例に使うことになります。基幹の仕組みで取り消しの印が付いたものは、索引から外します。
検索は、営業担当が査定書の作成を始めたときに動きます。 査定書の作成の仕組みで査定物件の条件を入れ終えたところで、「比較事例の候補を出す」を押す形にします。 依頼を受けた直後に自動で動かさないのは、聞き取りの段階では面積や階が確定していないことが多いためです。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 成約記録 | 成約番号、所在地、建物の番号、マンション名、階、向き、専有面積、間取り、築年月、駅と徒歩の分数、成約日、成約価格、取り消しの印 | 基幹の仕組み |
| 過去の査定書 | 査定番号、査定物件、査定日、査定した価格、選ばれた比較事例の成約番号 | 査定書の作成の仕組み |
| 建物の一覧 | 建物の番号、正式名、別名(号棟、旧名)、所在地、総戸数、竣工年月 | 自社で整える一覧 |
| 査定物件の条件(検索時) | 所在地、建物、階、向き、専有面積、間取り、築年月 | 営業担当の入力 |
質を決めるのは、建物の一覧です。 マンション名の書き方は、成約の記録ごとに揺れます。建物の番号にそろえておかないと、同じ建物の事例を別に取り出す5番目が当たりません。 号棟が分かれるマンションは、同じ敷地でも別の建物として持つか、同じ建物として持つかを先に決めます。
成約記録に、売主と買主の情報は入れません。 比較事例に要るのは物件と取引の条件だけです。氏名や連絡先が索引に入っていると、事例の引用として査定書に出る経路ができます。
データの取得方法を決める
基幹の仕組みから、前日に確定・変更・取り消しされた成約を毎晩書き出してもらいます。 Lambda で所在地を緯度経度に変え、マンション名を建物の一覧で建物の番号に置き換えて登録します。緯度経度への変換は、住所から位置を引く仕組み(ジオコーディング)を別に用意します。 変換できなかった住所は、取り込みで止めて担当に戻します。
索引の項目は、次のように持たせます。
| 項目 | 型 | 使いどころ |
|---|---|---|
deal_id | keyword | 成約番号。答えに添える根拠 |
building_id | keyword | 同じ建物の事例の取り出し |
location | geo_point | 半径の絞り込みと、距離の減衰 |
area_m2 | float | 面積の減衰 |
built_ym | date | 築年の減衰 |
closed_on | date | 成約日の減衰と範囲の絞り込み |
floor/direction/layout | integer/keyword/keyword | 違いの書き出し |
price/unit_price_m2 | long/float | 査定書に載せる値 |
store | keyword | 文書レベルのセキュリティ |
property_type | keyword | 区分所有のマンションだけに絞る |
築年は、年ではなく年月の日付として持たせます。 日付の項目にすれば、減衰の scale を「5年」のように単位付きで書けます。公式のドキュメントでは、日付の項目の scale は単位付きの数で指定でき、単位が無ければミリ秒とされています。
AIへ渡す前に整形する
- 所在地を緯度経度に変える … 成約記録の住所から、建物の位置を引きます。部屋ごとではなく建物ごとの位置にします
- 建物の番号にそろえる … マンション名を建物の一覧で照合し、号棟や旧名の揺れをまとめます
- 必須の項目の欠けを確かめる … 面積、築年月、成約日、位置のどれかが空の成約は、取り込みで止めて印を付けます
- 取り消しを外す … 契約が解除された成約を索引から外します
- 単価を計算する … 成約価格を専有面積で割り、㎡単価として持たせます
- 査定書の事例を結ぶ … 過去の査定書で選ばれた成約番号を、成約記録の側に「選ばれた回数」として持たせます
3番目が、この構成でいちばん効く前処理です。 公式のドキュメントには、項目が文書に無い場合、減衰関数は点数1を返すと書かれています。築年月が空の成約は、築年の近さで満点になり、築年が分からない事例が上位に並びます。 必須の項目が欠けた成約は、索引に入れる前に止めます。
6番目の「選ばれた回数」は、並べる順には使いません。 よく選ばれる事例は使いやすい事例ですが、近い事例とは限りません。 画面に参考として出すだけにします。
AIに処理させる
AIの仕事は、検索で出た事例ごとに、査定物件との違いを成約記録の値のまま書き出すことだけです。 事例を探すのも、近さの順に並べるのも検索基盤で行います。
| させること | 中身 |
|---|---|
| 同じ建物の事例の整理 | 同じ建物の成約を、階・向き・面積・成約日の違いとともに先頭に並べる |
| 周辺の事例ごとの違い | 距離、駅と徒歩の分数、階、向き、面積、築年、成約の時期の違いを、値で書く |
| 根拠の番号の添付 | 事例ごとに成約番号を添える |
| 確かめるべき点の書き出し | 成約から2年以上たった事例、間取りが違う事例を挙げる |
| させないこと | 理由 |
|---|---|
| 査定価格の算出・提案 | 価格の意見は宅地建物取引業者の責任で、担当と店長が決める |
| 補正率の決定 | 階や向きの補正は、自社の査定の基準で人が決める |
| 事例に無い情報の補足 | 周辺の相場や再開発の話を一般知識で足さない |
| 事例の良し悪しの評価 | 「この事例は適切です」と書かない。選ぶのは担当 |
| 単価の計算のやり直し | ㎡単価は取り込みで計算した値をそのまま使う |
1行目が、いちばん外せない線です。 近い事例の単価が並ぶと、AIは「これらの事例から、査定価格は〇〇万円前後と考えられます」と書きがちです。その一文が査定書に紛れ込むと、根拠の検討を経ない価格が依頼者に伝わります。 価格には一切触れさせません。
2行目も同じくらい大事です。 「3階と8階の違いは〇%程度」とAIが書けば、それが補正の根拠のように読まれます。補正は自社の査定の基準で決めるもので、AIには違いの事実だけを書かせます。
指示内容を固定する
あなたは不動産会社の営業部で、売却査定の比較事例の候補を整理する係です。
渡された検索結果だけを根拠にしてください。一般的な相場の知識で補わないでください。
【査定物件】
所在地:{address} 建物:{building_name} 階:{floor} 向き:{direction}
専有面積:{area_m2}㎡ 間取り:{layout} 築年月:{built_ym}
【検索結果】
same_building:同じ建物の過去の成約
nearby:周辺の成約(近さの点数の順)
【事例ごとに書くこと】
1. 成約番号、成約日、建物名、階、向き、専有面積、間取り、築年月、成約価格、㎡単価
2. 査定物件との違い(値で書く)
- 距離(m)、駅と徒歩の分数の差、階の差、向きの違い、面積の差(㎡)、築年の差(年)、成約からの経過(か月)
3. 確かめるべき点(成約から2年以上、間取りが違う、など)
【厳守事項】
- 査定価格や価格の目安を書かないでください。
- 階や向きの違いを、何%の差といった補正の数字で書かないでください。違いの事実だけを書いてください。
- 成約価格と㎡単価は、検索結果の値をそのまま写してください。計算し直さないでください。
- 検索結果に無い周辺の相場、再開発、人気などを書かないでください。
- 事例が適切かどうかを評価しないでください。
- same_building が空のときは「同じ建物の成約なし」と書いてください。
- 売主・買主に関わる情報には触れないでください。
「補正の数字で書かない」を明記しないと、AIは親切に階の補正率を書きます。 一般的な目安として書かれた数字でも、査定書の上では自社の基準と同じ重さで読まれます。 違いは値で書かせ、補正は人の側に残します。
検索結果は、Claude の検索結果ブロックで渡します。 成約1件を1つの search_result にし、source に成約番号、title に建物名と階、content に成約の条件を入れます。公式の説明では、引用付きの答えが返り、Amazon Bedrock でも使えます。 違いの書き出しがどの成約から来たかを、査定書の作成の画面で辿れます。
出力形式を固定する
周辺の事例の検索は、次のように組みます。
GET /deals/_search
{
"size": 10,
"query": {
"function_score": {
"query": { "bool": { "filter": [
{ "term": { "property_type": "condo" } },
{ "range": { "closed_on": { "gte": "now-3y/d" } } },
{ "geo_distance": { "distance": "3km",
"location": { "lat": 35.6581, "lon": 139.7017 } } }
] } },
"functions": [
{ "gauss": { "location": { "origin": { "lat": 35.6581, "lon": 139.7017 }, "scale": "1km" } } },
{ "gauss": { "area_m2": { "origin": 68.5, "offset": 3, "scale": 10 } } },
{ "gauss": { "built_ym": { "origin": "2008-03-01", "scale": "1825d" } } },
{ "gauss": { "closed_on": { "origin": "now", "scale": "365d" } } }
],
"score_mode": "multiply",
"boost_mode": "replace"
}
}
}
boost_mode を replace にしているのは、絞り込みの部分に点数が無いためです。 公式のドキュメントでは、replace はクエリの点数を無視して関数の点数を使うとされています。面積の offset: 3 は、±3㎡以内を点数1として同じ扱いにする設定です。
査定書の作成の仕組みに返す形は、次のJSONです。
{
"subject": { "building_id": "B-01234", "floor": 8, "area_m2": 68.5, "built_ym": "2008-03" },
"same_building": [
{ "deal_id": "D-2025-0412", "floor": 5, "direction": "南", "area_m2": 70.2,
"closed_on": "2025-04-12", "price": 0, "unit_price_m2": 0,
"differences": { "floor_diff": -3, "area_diff_m2": 1.7, "months_since": 18 } }
],
"nearby": [
{ "deal_id": "D-2026-0108", "building_name": "", "distance_m": 420, "score": 0.61,
"differences": { "walk_min_diff": 2, "floor_diff": 2, "area_diff_m2": -4.3,
"age_diff_years": 3, "months_since": 9 },
"to_check": ["間取りが違う(2LDK)"] }
],
"excluded_missing_fields": 3
}
1つ目の理由は、same_building と nearby を別の配列にできることです。 査定書の作成の画面で、同じ建物の事例を別の表として先頭に固定できます。
2つ目は、differences を数値の項目で返せることです。 違いが数値で並べば、営業担当は自社の補正の表にそのまま当てはめられます。 文章の中の数字を拾い直す手間がありません。
3つ目は、excluded_missing_fields で、必須の項目が欠けて外した成約の数を見せられることです。 数が多ければ、基幹の仕組みの入力の漏れを直す合図になります。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 基幹の仕組み | 毎晩の書き出し | 前日に確定・変更・取り消しされた成約 |
| 査定書の作成の仕組み | 毎晩の書き出し/画面からの呼び出し | 過去の査定書の事例を取り込み、比較事例の候補を返す |
| ジオコーディング | Lambda からの呼び出し | 住所から建物の緯度経度を引く |
| Amazon OpenSearch Service | 索引への登録と検索 | 同じ建物の事例と、近さの点数の順の事例 |
| Claude(Amazon Bedrock) | Lambda からの呼び出し | 事例ごとの違いを引用付きで書き出す |
査定書の作成の仕組みには、候補の欄にだけ返します。 比較事例の欄に移すのは営業担当の操作で、候補がそのまま査定書に載ることはありません。
人が確認する
この構成の確認は、必須です。 査定書の比較事例は、価格の意見の根拠になります。
- 同じ建物の事例を先に見る … 階・向き・面積の違いと成約の時期を確かめ、使うかを決めます
- 周辺の事例から3〜5件を選ぶ … 点数の順に上から使うのではなく、違いの数値を読んで、補正で説明できる事例を選びます
- 確かめるべき点を見る … 成約から時間がたった事例、間取りが違う事例は、使うなら理由を査定書に書きます
- 店長が査定書を確かめる … 比較事例の選び方と補正を、店長が見ます
2番目で点数の順に頼らないのは、点数が近さの目安にすぎないからです。 角部屋、眺望、リフォームの有無は、点数に入っていません。それを知っているのは、現地を見た担当です。
1件あたり10分を目安にします。 候補が10件出れば、違いの数値を流し読みして3〜5件を選び、確かめるべき点を見る時間です。
例外に対処する
| 起きること | 対応 |
|---|---|
| 周辺の事例が3件に満たない | 半径を広げた場合の件数を添えて「事例が少ない」と出す。自動で半径を広げない |
| 同じ建物の事例が無い | 「同じ建物の成約なし」と出す |
| 必須の項目が欠けた成約 | 取り込みで止める。索引に入れない |
| 住所から位置を引けない | 取り込みで止め、担当に住所の確認を依頼する |
| 建物の一覧に無いマンション | 新しい建物として仮の番号を付け、担当に建物の一覧への登録を依頼する |
| 取り消された成約 | 索引から外す |
| Bedrock の呼び出しに失敗した | 検索結果の事例と数値の違いをそのまま表示する |
1行目で半径を自動で広げないのは、広げた事例を担当が「近い事例」と読むためです。 郊外の物件で3kmの外まで事例を探すかは、地域を知る担当と店長が決めます。
記録を残す
- 毎晩の取り込みの件数と、止めた成約とその理由
- 査定ごとの、査定物件の条件と、返した事例の成約番号と点数
- Claude に渡した検索結果と、返ってきた答えと引用
- 営業担当が査定書に載せた事例と、載せなかった事例
- 店長が査定書を差し戻した記録と、その理由
4つ目と5つ目は、減衰の scale を直す材料です。 担当が選ぶ事例が、いつも点数の順位の下のほうにあるなら、どれかの軸の scale が実際の感覚より狭いか広いということです。3か月ごとに見直します。
04実装レベルの3段階
半自動化で、①と②の探す時間は大きく減ります。 ただし違いを書き出して査定書に写す作業は人が行います。本格構成で1件10分になり、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化で1か月使うと、建物の名寄せの漏れと、scale の合わない軸が先に見つかります。担当が選ぶ事例と点数の順位がずれる地域を直してから違いの書き出しを足すほうが、AIの書いた違いを担当が信用しやすくなります。
05工数削減シミュレーション
導入後 120件 × 10分 ÷ 60 = 20 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 複数の店舗で中古マンションの売買の仲介を行い、売却査定の依頼が月に100件前後ある不動産会社で、自社の過去の成約記録と査定書が数年分たまっているのに、比較事例の選び方が営業担当ごとにばらばらな場合。成約記録に所在地・面積・築年・間取り・階・成約日がそろっている場合。査定書に載せる比較事例の根拠を、依頼者に説明できる形でそろえたい場合。AWS を使っており、検索基盤と生成AIを同じ環境で動かせる場合。
- 査定の依頼が月に数件で、担当者が地域の成約を覚えていられる場合。自社の成約記録が少なく、比較事例のほとんどを外部の情報に頼っている場合。土地や一棟の収益物件のように、面積や築年だけでは近さを測れない物件が中心の場合。なお、査定価格そのものの決定と、依頼者への価格の意見は宅地建物取引士と店長が行い、この構成はそれを代わりに行いません。
07最小構成で試す方法
- 過去3か月の査定書から10件を選び、そのとき選ばれた比較事例を書き出す
- その10件の査定物件の周辺(半径3km程度)の成約を、基幹の仕組みから表計算に書き出す(売主・買主の情報は外す)
- 表計算に、査定物件からの距離、面積の差、築年の差、成約からの月数を列で足す
- 手元のAIサービスに表を貼り、「距離・面積・築年・成約の時期が近い順に5件挙げ、査定物件との違いを値で書いてください。価格の目安や補正の数字は書かないでください」と指示する
- 挙がった5件と、当時の担当が選んだ事例を見比べる
| 出てきた内容 | 判断 |
|---|---|
| 当時選ばれた事例の多くが5件に入る | 索引と減衰関数の構築に進む |
| 価格の目安や補正の数字を書く | 指示の書き方で直る。構成は有効 |
| 成約記録の面積や築年が空で、近さを測れない | 基幹の仕組みの入力が先。 検索の問題ではない |
1行目で入らなかった事例は、担当が何を見て選んだかを聞きます。 「同じ小学校の学区」「同じ坂の上」のような、点数に入っていない近さが出てきたら、それが次に足す軸の候補です。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 築年が分からない事例が上位に出る | 項目が無いと減衰関数は点数1。 必須の項目が欠けた成約は索引に入れない |
| 距離だけ近く築年が離れた事例が上に来る | score_mode を掛け算にする |
| 同じ建物の事例が当たらない | 建物の番号にそろえ、別の検索で取り出す |
日付の scale が効かない | 単位を付ける。単位が無いとミリ秒 |
| 解除された成約が出る | 毎晩の取り込みで取り消しを外す |
| AIが価格の目安を書く | 価格と補正の数字を禁じる |
| 単価がずれる | 取り込みで計算した値を使い、AIに計算させない |
| 遠い事例まで点数を計算して遅い | geo_distance で半径を先に絞る |
| 他店の未成約の査定書が見える | 文書レベルのセキュリティで店舗ごとに絞る |
1行目が、この構成でいちばん気づきにくい失敗です。 点数の計算に間違いは無く、欠けた項目が満点として扱われているだけなので、上位の事例を1件ずつ開くまで気づけません。
4行目も、最初の試しでよく起きます。 築年の scale に 5y のような書き方をしたつもりで数字だけを入れると、ミリ秒として扱われ、築年がわずかに違うだけの事例の点数がほとんど0になります。 上位が同じ築年の事例ばかりになったら、まず単位を疑ってください。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 自社が仲介した成約の所在地・部屋・価格、過去の査定書の査定価格です。成約の記録は、売主と買主の取引そのもので、部屋番号と価格の組み合わせは個人に結びつきます。
- 売主・買主の情報を索引に入れない … 氏名、連絡先、取引の事情は入れません。比較事例に要るのは物件と取引の条件だけです
- 見られる範囲を役割で分ける … 細かなアクセス制御の文書レベルのセキュリティで、他店の未成約の査定書は見せないようにできます。公式のドキュメントでは、役割ごとにクエリで読める文書を決め、
${user.name}などの変数で利用者に応じた絞り込みもできます - 依頼者に見せる形を決める … 査定書に載せる比較事例は、部屋番号を出さず、階と面積と成約の時期で示すなど、自社の基準で決めます
- 価格の意見をAIに書かせない … 価格と補正は、担当と店長が決めます
- 外部の成約情報を混ぜない … 外部の情報を索引に入れるときは、その利用規程を確かめてからにします
- 検索の記録を残す … 誰がどの査定物件で検索したかを残します。査定の依頼が無い物件の成約を繰り返し調べるような使われ方を、後から確かめられるようにします
誤りが起きた場合のリスクは、近くない事例を根拠に価格の意見を述べることと、取引の情報を不要な範囲に見せることの2つです。 前者は必須の項目の欠けを止めることと人の選択で、後者は索引に入れない項目と文書レベルのセキュリティで防ぎます。
10まず何から始めるか
1週目:成約記録の欠けを数える
過去3年の成約記録について、所在地・面積・築年月・成約日・成約価格が空の件数を数えます。欠けが多ければ、基幹の仕組みの入力を先に直します。
2週目:10件の査定で試す
過去の査定10件と周辺の成約の表で、手元のAIサービスに近い事例を挙げさせます。価格の目安や補正の数字を書いていないかを最優先で見ます。
3週目:建物の一覧を作る
査定の多い地域から、マンション名と建物の番号の一覧を作ります。号棟と旧名の扱いを店長と決めます。
4週目:索引と減衰関数を作る
1店舗の地域の成約を取り込み、function_score で近さの順に並べます。担当が当時選んだ事例が上位に来るかを見て、scale を調整します。
2か月目: 同じ建物の事例と、事例ごとの違いの書き出しを足し、全店舗に広げます。3か月目以降: 査定書の作成の仕組みに候補を返し、1件の査定が何分になったかを実測します。同じ査定物件に、どの担当でも同じ比較事例の候補が並び、依頼者に選んだ根拠を数値で説明できるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 宅地建物取引業法第34条の2第2項で、宅地建物取引業者は売買すべき価額又はその評価額について意見を述べるときは、その根拠を明らかにしなければならないとされていること | e-Gov法令API: 宅地建物取引業法 | 2026-10-07 |
function_score の減衰関数がガウス・指数・線形の曲線を持ち、数値・日付・geo_point の項目に使えること。origin・offset・scale・decay(既定0.5)の意味、日付の scale が単位付きで単位が無ければミリ秒であること。項目が無い文書では点数1を返すこと。score_mode の既定が掛け算で、boost_mode の replace がクエリの点数を無視すること | OpenSearch Documentation: Function score query | 2026-10-07 |
geo_distance が指定した点から指定した距離の範囲にある位置の文書を返し、項目が geo_point 型である必要があること | OpenSearch Documentation: Geodistance query | 2026-10-07 |
文書レベルのセキュリティが役割ごとにクエリで読める文書を決め、${user.name} などの変数を使えること | OpenSearch Documentation: Document-level security | 2026-10-07 |
| Amazon OpenSearch Service の細かなアクセス制御で、文書レベル・項目レベルのセキュリティを役割ごとに設定できること | Amazon OpenSearch Service: Fine-grained access control | 2026-10-07 |
検索結果ブロック(source・title・content)で引用付きの答えが返り、Amazon Bedrock でも使えること | Claude Docs: Search results | 2026-10-07 |
査定価格の意見と比較事例の示し方は、宅地建物取引業法と自社の査定の基準に従ってください。 本記事は公開仕様で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0728)についてのご相談はこちらから。
