Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Apply shared term normalization to search terms, query matchers and the alias index

オープン
#346 コメント 0 件 リアクション 0 件 担当者 1 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@bmerkle がすでに取り組んでいます。

2026年10月19日 から。

  • #360 @bmerkle による — オープン

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
48/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
python
領域
databases, search

調査の方向性

Read search.validate_and_prepare_term, searchlib._parse_search_term, and query.get_matching_term_for_text, then inspect the related-terms indexes in storage/memory/related_terms_index.py and storage/sqlite/related_terms_index.py. Compare the incremental update path in ConversationBase with add_messages._collect_related_terms_for_fuzzy_index and its collection helpers. Done means all paths normalize terms consistently and both ingestion paths collect the same terms; run the relevant search, query, and indexing tests.

索引モデルが issue の本文から書いたものです。

説明

Follow-up to #322 / #325. #325 makes the memory and SQLite term and property indexes share normalize_term (NFC, lowercase, trim, collapse whitespace). Several other places still only call .lower(), so they can disagree with the index keys:

  1. Search side. search.validate_and_prepare_term, searchlib._parse_search_term and query.get_matching_term_for_text (and the entity-matching helpers such as match_entity_name_or_type) still only lowercase. Example: for entity "Space Needle" and search term "space needle", lookup_term finds the semref, but boost_entities compares "space needle" with "space needle" and fails, so the entity loses its boost. Normalizing once in validate_and_prepare_term and in the query matchers would fix this.
  2. Related-terms alias index (storage/memory/related_terms_index.py, storage/sqlite/related_terms_index.py) stores and looks up raw text. An alias registered for "space needle" is missed when the user searches " Space\tNeedle".
  3. The two fuzzy-index update paths collect different terms. ConversationBase incremental updates add only entity names, topic text and action verbs. add_messages._collect_related_terms_for_fuzzy_index uses collect_entity_terms / collect_action_terms, which also include types, facets, subjects and objects. So related-term expansion depends on which ingestion path was used. This was already the case before #325.

Found while reviewing #325; left out of it to keep that PR focused on the storage indexes.

主要言語
Python
スター
892
フォーク
76
平均マージ
2日 15時間
マージ済み PR(30日)
23

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

microsoft/typeagent-py のほかの issue

microsoft/typeagent-py の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。