عند محاولة البحث عن محتوى صيني في منتداي، أرى أن نتائج البحث تُرجع جملًا مقطعة، مع غياب علامات الترقيم، ومسافات بيضاء غير متوقعة بين الكلمات، بالإضافة إلى اختفاء بعض الكلمات.
على سبيل المثال، جربت البحث عن 管理员، وكانت الجملة الأصلية هي:
كما ترون، كلمة 可见的 مفقودة، وعلامة النقطة 。 مفقودة أيضًا، مما يجعل الجملة غير مكتملة. ثم اختفت أيضًا الكلمات 只有 و و و 才能. كما توجد مسافات بيضاء غير متوقعة بينها.
نعم، البحث لا يزال يعمل، لكن مقتطفات العرض ليست مثالية. بالنسبة للغة الصينية، يتم التعامل مع البحث بطريقة مختلفة بعض الشيء. فبدلاً من تجاهل كلمات التوقف أثناء استعلام البحث نفسه، نقوم باستبعادها تمامًا من بيانات البحث.
يتم تحديد كلمات التوقف باستخدام GitHub - yanyiwu/cppjieba: "结巴"中文分词的C++版本 · GitHub. مع التغييرات الأخيرة في طريقة عرض مقتطفات البحث، يجب علينا ببساطة إزالة السطر التالي لأنه يتعارض مع بيانات البحث الفعلية.
على أي حال، دعم البحث للغة الصينية لدينا ليس ممتازًا، ولكن هناك إضافات لـ PostgreSQL قد نرغب في النظر فيها لتمكيننا من دعم اللغات التي لا تتوفر لها دعم أصلي بشكل صحيح. ربما https://pgroonga.github.io/؟
يدعم PostgreSQL البحث النصي الكامل للغات التي تستخدم الأحرف الأبجدية والأرقام فقط. وهذا يعني أن PostgreSQL لا يدعم البحث النصي الكامل للغات مثل اليابانية والصينية وما إلى ذلك. يمكنك استخدام ميزة البحث النصي الكامل فائقة السرعة لجميع اللغات من خلال تثبيت PGroonga في PostgreSQL!
عذراً لعدم توضيحي أكثر في وقت سابق. إذا أردنا حقاً إصلاح هذا الأمر الآن، فيجب أن نضمن عدم إزالة كلمات التوقف الصينية من بيانات البحث، مع التأكد في الوقت نفسه من إزالة كلمات التوقف عند استخدامها كاستعلام بحث.
يوجد عمودان نقوم بتخزينهما في جدول PostSearchData، حيث يُستخدم #search_data عند الاستعلام مقابل مصطلحات البحث. أما #raw_data فهو ما نستخدمه عند عرض مقتطف البحث. يجب أن يتمثل الإصلاح هنا في عدم إزالة كلمات التوقف الصينية من #raw_data بينما تُزال من #search_data.