fix(M01): 자재 · 직종 고르기 찾기 — 낱말이 키(MT…)와 같으면 맞음(39-8 · 찾기 칸 글 「이름 · 규격 · 코드」 와 맞춤)

- 이름 · 규격 낱말 AND · 띄어쓰기는 그대로 · 원본 자료는 읽기만
- M02 일위대가 [자재 추가] · M01 자재 고르기가 같은 길(/api/m01/pick)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NPJGtfXo6GMbcpiboQC4uK
This commit is contained in:
2026-10-04 21:22:09 +09:00
co-authored by Claude Opus 5.5
parent b1d092efeb
commit 68f1c20e65
2 changed files with 9 additions and 2 deletions
+2 -2
View File
@@ -470,7 +470,7 @@ def _lowest(row: dict) -> object:
def pick(kind: str, q: str, limit: int) -> dict:
"""고르기 창 — `price` 자재품목(관급 줄 포함 · ref = 키) · `job` 값 있는 공표 노임 직종
(미확보·추정 빼고 모든 구분)(ref = 키) · 이름·규격 낱말이 모두 들어간 줄."""
(미확보·추정 빼고 모든 구분)(ref = 키) · 낱말마다 이름·규격에 들어 있거나 키와 같은 줄."""
if kind not in _PICK:
raise StoreError(404, f"없는 고르기 「{kind}」")
words = [_squash(w) for w in q.split()]
@@ -481,7 +481,7 @@ def pick(kind: str, q: str, limit: int) -> dict:
):
continue
text = _squash(f"{row.get('이름')} {row.get('규격')} {' '.join(row.get('옛이름') or [])}")
if all(w in text for w in words):
if all(w in text or w == _squash(row.get("키")) for w in words):
hits.append(
{
"ref": str(row.get("키")),