Tujuan dari fungsi peningkatan solr

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.


person Niranjan Kumar    schedule 04.01.2017    source sumber
comment
dapatkah Anda menunjukkan hasil getFieldsToBoost?   -  person Mysterion    schedule 09.01.2017
comment
ia mengembalikan string yang dipisahkan koma dalam format itemAttributes_{Dynamic_FieldName} Jika {Dynamic_FieldName} ini berisi karakter khusus yang ditentukan di atas, maka karakter tersebut akan rusak.   -  person Niranjan Kumar    schedule 10.01.2017
comment
jika Anda tidak mendapatkan apa yang ditingkatkan, mengapa Anda menggunakannya?   -  person Mysterion    schedule 10.01.2017
comment
Apakah fungsi boost cenderung mengubah hasil pencarian juga? Bisakah Anda menjelaskan mengapa ini pada dasarnya digunakan?   -  person Niranjan Kumar    schedule 10.01.2017


Jawaban (1)


Tujuan dari fungsi peningkatan adalah untuk meningkatkan istilah atau dokumen atau bidang tertentu, saat mengembalikan hasil. Itu tidak akan menambah atau mengubah kumpulan hasil, mis. itu hanya bisa mengubah urutannya.

Jadi, misalnya jika Anda memutuskan bahwa bidang judul lebih penting daripada deskripsi, Anda dapat mengaturnya dengan peningkatan. Hal yang sama dapat dilakukan, jika Anda memutuskan bahwa istilah Nike lebih penting daripada istilah Adidas.

Beberapa informasi tambahan di sini

person Mysterion    schedule 10.01.2017