簡體   English   中英

提醒已輸入類似數據

[英]Alert that a similar data is already entered

我試圖找出一種方法來檢測之前是否將類似的輸入輸入到 mysql 數據庫中。 我不是說重復條目沒有相似但不准確,問題是當數據輸入人員需要輸入一個名字時,名字的發音可能會因人而異,所以我需要一種方法讓我的 php 代碼檢測是否與輸入的條目相似的條目已經輸入並警告工作人員仔細檢查它是否是相同的名稱

這不能單獨使用 mysql 完成,而是需要由您的代碼處理。 因此,在向表中插入任何數據之前,需要制定並執行查詢以查找潛在的相似數據。 什么是相似的定義在很大程度上取決於您的業務需求。

模糊搜索不是 MySQL 的強項,因為您可能會遇到一種或幾種like情況。 可以通過使用通配符占位符計算可能的變化並將它們組合到一個查詢中來搜索 Levenshtein 距離為 2(也許是 3)的變化。 Gordon Lesti更詳細地描述了這種方法。 根據這些查詢的復雜性和系統上的流量,這很有可能很容易導致 mysql 實例宕機。

如果性能是一個問題,像 Elasticsearch 這樣的搜索引擎可能會有所幫助。 將數據插入 MySQL 時,這些數據也會作為文檔添加到 Elasticsearch。 這將允許使用 Elasticsearch 的模糊搜索功能搜索相似的記錄,該功能的性能遠高於 MySQL。

如果應用程序不需要 MySQL 的事務安全性,那么也可以選擇將 MySQL 替換為 Elasticsearch,使用 Elasticsearch 不僅用於搜索,還用於持久性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM