Saya menemukan sekumpulan kode lama di mana beberapa variabel dinamis disetel ke fungsi solr boost.
String query = "{!boost b=sum(" + searchQuery.getFieldsToBoost() + ")}";
Ini rusak jika searchQuery.getFieldsToBoost()
berisi salah satu tanda baca berikut + - && || ! ( ) { } [ ] ^ " ~ * ? : \
Jadi saya mencoba menghindari karakter khusus ini dalam fungsi boost sum(), menggunakan pendekatan yang diberikan di https://lucene.apache.org/core/2_9_4/queryparsersyntax.html
Namun pendekatan di atas tidak berhasil.
Berikut kesalahannya:
Caused by: org.apache.lucene.queryParser.ParseException: Expected ',' at position 631 in 'sum(itemAttributes_A3,itemAttributes_ASD,itemAttributes_ASD1,itemAttributes_Bang,itemAttributes_Color,itemAttributes_ES,itemAttributes_El_Segundo_only,itemAttributes_Environment_Friendly,itemAttributes_MossPoint_only,itemAttributes_NAUFIL,itemAttributes_NorthDakota_only,itemAttributes_Off_Contract,itemAttributes_On_Contract,itemAttributes_PBINFO,itemAttributes_PPD,itemAttributes_Palmdale_only,itemAttributes_Preferred,itemAttributes_Punchout,itemAttributes_RanchoBernardo_only,itemAttributes_SEARCHABLE,itemAttributes_Services,itemAttributes_SpacePark_only,itemAttributes_custom_flag12,itemAttributes_FL_01,itemAttributes_hyphen\-field,itemAttributes_icon,itemAttributes_required_PPD,itemAttributes_semicolon;field,itemAttributes_space_field,attributes_Green_certified,attributes_Preferred_contract,attributes_Service_Disabled_Veteran,attributes_Veteran_Owned,attributes_Minority_Owned,attributes_Woman_Owned,attributes_Hubzone,attributes_Tier_II_Contract,attributes_Red_Attribute)'
Jadi saya berpikir untuk mengganti semua karakter khusus di searchQuery.getFieldsToBoost()
menjadi garis bawah.
Tapi saya tidak tahu bagaimana pengaruhnya terhadap hasil pencarian/peningkatan hasil.
Pada dasarnya akan sangat baik jika seseorang dapat membantu saya keluar dari karakter khusus atau memberi saya gambaran umum tentang dampaknya setelah mengganti karakter khusus menjadi garis bawah.
Saya gagal memahami apa tujuan peningkatan solr.