Hi Mohan, I indexed your 9 examples as simple documents after mapping dynamic field “*_ar” to the “text_ar” field type:
----- [{"id":"1", "name_ar":"المؤسسة التجارية العمانية"}, {"id":"2", "name_ar":"شركة التأمين الأهلية ش.م.ع.م"}, {"id":"3", "name_ar":"شرطة عمان السلطانية - قيادة شرطة محافظة شمال الشرقية - - مركز شرطة إبراء"}, {"id":"4", "name_ar":"شركة ظفار للتأمين ش.م.ع.ع"}, {"id":"5", "name_ar":"طوارئ المستشفيات - طوارئ مستشفى صحار"}, {"id":"6", "name_ar":"شرطة عمان السلطانية - قيادة شرطة محافظة الداخلية - - مركز شرطة إزكي"}, {"id":"7", "name_ar":"المؤسسة التجارية العمانية"}, {"id":"8", "name_ar":"وزارة الصحة - المديرية العامة للخدمات الصحية محافظة الداخلية - - مستشفى إزكي (البدالة) - الطوارئ"}, {"id":"9", "name_ar":"أسعار المكالمات الدولية - مونتسرات - - مونتسرات”}] ----- Then when I search from the Admin UI for “name_ar:شرطة ازكي” (the query in one of your screenshots with numFound=0) I get the following results: ----- { "responseHeader": { "status": 0, "QTime": 1, "params": { "indent": "true", "q": "name_ar:شرطة ازكي", "_": "1487912340325", "wt": "json" } }, "response": { "numFound": 2, "start": 0, "docs": [ { "id": "6", "name_ar": [ "شرطة عمان السلطانية - قيادة شرطة محافظة الداخلية - - مركز شرطة إزكي" ], "_version_": 1560170434794619000 }, { "id": "3", "name_ar": [ "شرطة عمان السلطانية - قيادة شرطة محافظة شمال الشرقية - - مركز شرطة إبراء" ], "_version_": 1560170434793570300 } ] } } ----- So I cannot reproduce the failures you’re seeing. In fact, I tried all 9 of the queries you listed as not working, and all of them matched at least one of the above 9 documents, except for case 5 (which I give details for below). Are you absolutely sure that you reindexed your data with the ICUFF last? The one query that didn’t return any matches for me is “name_ar:طوارى صحار”. Here’s why: Indexed original: طوارئ صحار Indexed analyzed: طواري صحار Query original: طوارى صحار Query analyzed: طوار صحار In the analyzed indexed form, the “ئ” (yeh with hamza above) is left intact by ArabicNormalizationFilter and ArabicStemFilter, and then the ICUFoldingFilter converts it to “ي” (yeh without the hamza). In the analyzed query, ArabicNormalizationFilter converts “طوارى” to “طواري” (alef maksura->yeh), which ArabicStemFilter converts to “طوار” by removing the trailing yeh. I don’t know what the correct thing to do is to make alef maksura and yeh match each other, but one possibility is adding a char filter that converts all alefs maksura into yehs with hamza, like this: <charFilter class="solr.PatternReplaceCharFilterFactory" pattern="ى" replacement="ئ”/> When I added the above to my “text_ar" field type and re-indexed, I got the following when I queried for “name_ar:طوارى صحار”: ----- { "responseHeader": { "status": 0, "QTime": 2, "params": { "indent": "true", "q": "name_ar:طوارى صحار", "_": "1487915432177", "wt": "json" } }, "response": { "numFound": 2, "start": 0, "docs": [ { "id": "5", "name_ar": [ "طوارئ المستشفيات - طوارئ مستشفى صحار" ], "_version_": 1560192353894924300 }, { "id": "8", "name_ar": [ "وزارة الصحة - المديرية العامة للخدمات الصحية محافظة الداخلية - - مستشفى إزكي (البدالة) - الطوارئ" ], "_version_": 1560192353895972900 } ] } } ----- -- Steve www.lucidworks.com