اقتراح تحسين طفيف لمعالجة البحث باللغة الفرنسية (الأحرف الخاصة "œ" و "æ")

بعض الكلمات الفرنسية تستخدم الأحرف التالية:

  • Œ, œ، مثل في œuf (بيضة) أو cœur (قلب)، œuvre (ترجمات ومعانٍ متعددة لذلك لن أفصل هنا، لا يهم)، وغيرها.
  • Æ, æ، مثل في nævus (المصطلح العلمي للوحمة (النقطة على الجلد، وليس الحيوان) أو غيرها).

æ نادرًا ما تُستخدم (أعتقد أنها دائمًا مصطلحات علمية/طبية من اللاتينية؟)، ولكن œ، مع ذلك، موجودة بشكل كبير في اللغة الفرنسية.

للأسف، هذه الأحرف الخاصة غير موجودة في تخطيط لوحة المفاتيح الفرنسية ويكتب الكثير من الناس ببساطة “oe” أو “ae” بدلاً منها.
ولكن لدى بعض المستخدمين تخطيطات مخصصة، والتصحيح التلقائي من الهواتف الذكية، أو بعض أنظمة المساعدة الكتابية الأخرى تقوم غالبًا بتصحيح الكلمات تلقائيًا باستخدام “الأحرف المدمجة” الصحيحة، مثل “oeuvre” → “œuvre”.

حاليًا، تعالج عملية البحث “oe” و “œ” كسلاسل نصية مختلفة، مما يؤدي إلى نتائج مختلفة يجب أن تكون مشتركة بدلاً من ذلك.

مثال:
https://forum.monocycle.info/search?q=coeur
https://forum.monocycle.info/search?q=cœur

اقتراحي هو أن تتم معالجة “oe” و “œ”، و “OE” و “Œ” كسلاسل نصية متطابقة. وكذلك الحال بالنسبة لـ “ae” و “æ”، و “AE” و “Æ”.

9 إعجابات

مشكلة مثيرة للاهتمام حقًا يا @zogstrip / @j.jaffeux ما رأيك؟ يمكننا إضافة مُطَبِّع خلف إعداد موقع.

3 إعجابات
SELECT to_tsvector('french', E'Cette oeuvre d\\'art n\\'est pas une œuvre.');
            to_tsvector             
------------------------------------
 'art':4 'cet':1 'oeuvr':2 'œuvr':9
(1 row)

لبعض الأسباب، اعتقدت أن التعامل مع علامات التشكيل والربط وما شابه ذلك كان مشكلة محلولة عند التعامل مع البحث… أعتقد لا؟ :man_shrugging:

بصفتي :fr:، أنا بالتأكيد أدعم ذلك. يبدو أنه يمكننا استخدام ميزة unaccent في PostgreSQL التي تزيل علامات التشكيل وتتعامل أيضًا مع الربط الشائع.

SELECT to_tsvector('french', unaccent('œuvre poêle œuf Noël électroencéphalogramme æ Æ'));
                               to_tsvector                               
-------------------------------------------------------------------------
 'ae':6,7 'electroencephalogramm':5 'noel':4 'oeuf':3 'oeuvr':1 'poel':2
(1 row)
4 إعجابات

وبصفتك فرنسيًا، هل تكره أيضًا التعقيد غير المجدي لهذه اللغة (على الرغم من أنها مثيرة للاهتمام) بقدر ما أكرهها؟ :smile:
آسف على الدعابة الطفيفة الخارجة عن الموضوع

4 إعجابات

هل تعتقد أنه يجب علينا ببساطة تعديل تطبيق search_ignore_accents لاستخدام unaccent أم أننا سنحتاج إلى إعداد جديد تمامًا؟

أحببت تغيير تطبيق تجاهل العلامات الصوتية ببساطة لأنه يتوافق مع ما يفعله PG على أي حال.

3 إعجابات

هذا سؤال جيد :thinking:
سيعمل بالتأكيد لـ :fr: ولكن قد تكون هناك مناطق أخرى قد لا تعمل فيها كما هو متوقع؟
بعد إلقاء نظرة على ملفات /usr/share/postgresql/13/tsearch_data/unaccent.rules يبدو أنها آمنة جدًا.
أنا بالتأكيد أدعم إزالة تبديل إعداد search_ignore_accents الخاص بنا لاستخدام unaccent الخاص بـ postgresql :+1:
هل يمكنك يا @nbianca إضافة هذا إلى قائمتك؟

3 إعجابات

لقد استبدلت تطبيق Ruby القديم الخاص بنا بـ unaccent الخاص بـ Postgresql في طلب السحب هذا:

5 إعجابات

تم إغلاق هذا الموضوع تلقائيًا بعد 3 أيام. لم يعد يُسمح بالردود الجديدة.