What the documents look like
Wholesale market stall trading is more scattered than regional distributor replenishment, and it relies on on-site bargaining and consignment shipping. The document set for this category consists mainly of purchase slips, handwritten sales notes, stall lease contracts, and payment receipts. Handwritten slips carry variable handwriting, abbreviations, corrections, and missing fields, so the same transaction can be written differently across materials. Contract-to-transaction comparison requires placing contract clauses and slip fields side by side on the same subject, the same period, and the same field. Document parsing and chunking determine whether those fields can be extracted completely and whether each extracted value keeps a traceable identity back to the source text.
Constraints at the document chunking step
Chunking must follow the structure of the specific material. A condition, an explanation, and the content it constrains cannot be split apart. Original data and retrieval indexes are distinct; one set of original data can map to multiple indexes. Retrieval is a recall process and does not perform authorization checks. Minimum relevance is a filtering threshold and does not constitute entity or permission isolation.
The following is a hypothetical paper exercise sample, used only to explain the comparison method. It does not refer to any real merchant or document.
Material one is an excerpt from a stall lease contract: "Lessor: registered holder of stall A-12 in a certain market; Lessee: B; Stall: A-12; Term: 1 March 2025 to 28 February 2026; Monthly rent: per the contract appendix."
Material two is an excerpt from a handwritten sales note: "Date: 10 April 2025; Item: spring outerwear; Quantity: 30 pieces; Unit price: 45 yuan; Consignee: B; Consignment note number: T-0410-07."
Material three is an excerpt from a payment receipt: "Receipt date: 12 April 2025; Amount: 1350 yuan; Reason: payment for goods of 10 April; Payee: A."
Draft sentence to be assessed: "B settled all rent for stall A-12 for the whole of 2025 on 12 April 2025." This sentence replaces the receipt reason "payment for goods of 10 April" with "all rent for the year." The value of the same field has been rewritten.
Configuration and implementation checks
| Configuration item | Hypothetical starting point for this exercise | Reason for the choice and comparison method |
|---|---|---|
| Search mode | Hybrid search | Slips contain both identifiers and natural language, so semantic and full-text recall each cover part of the material; compare the recalled content from both paths |
| Reference cap | Set to a length that can cover a single slip and a contract excerpt | Measured in tokens; compare whether the returned content includes the subject, object, and status fields |
| Minimum relevance | Start at a middle value, then adjust up and down | This value takes effect only in semantic search or when result reordering is used; compare candidates before and after filtering |
| Result reordering | Enable when a model is available | The reordering score is 0-1; compare whether the complete field segment moves earlier after reordering |
| Chunk granularity | Segment by slip and by contract clause | Compare whether a conditional sentence stays in the same segment as the content it constrains |
| Post-update recheck | After upload, check training and index status | Compare upload success with what is actually retrievable |
Three common errors
- Treating the receipt reason and the contract rent as the same field. The input is material three, "Reason: payment for goods of 10 April." The comparison object is the contract rent field. The observable result is that the two reasons differ, so the record cannot be judged as rent settled.
- Treating a successful upload as an updated index. The input is the upload action for a new version of a slip. The comparison object is what is actually retrievable. The observable result is that retrieval still returns the old segment, in which case the record is marked as pending recheck.
- Using similarity filtering in place of an authorization check. The input is one semantic retrieval request. The comparison object is the returned records against the access scope. The observable result is that a high-scoring record may fall outside the authorized scope; retrieval does not constitute authorization.
How to verify the setup
- Input the source text of materials one, two, and three together with the draft sentence. Compare the reason field in the draft sentence with the reason field in material three. If the two do not match, the draft sentence is judged unsupported.
- Input "Consignment note number: T-0410-07" from material two. Compare the returns from full-text search and semantic search. If full-text search matches this identifier while semantic search does not, record the difference between the two modes.
- Input the term "1 March 2025 to 28 February 2026" from material one. Compare the draft sentence's claim of "all rent for the whole of 2025" against this term and against the receipt reason. If neither the term nor the reason supports the wording, keep it as an evidence gap.