溶胶增强功能的目的



我遇到了一组遗留代码,其中一些动态变量被设置为solr boost函数。

String query = "{!boost b=sum(" + searchQuery.getFieldsToBoost() + ")}";

如果searchQuery.getFieldsToBoost()包含任何这些标点符号,则会中断+ - && || ! ( ) { } [ ] ^ " ~ * ? :

所以我试图在boost sum()函数中使用 https://lucene.apache.org/core/2_9_4/queryparsersyntax.html 中给出的方法转义这些特殊的字符

但是上述方法不起作用。

以下是错误:

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)'

因此,我想替换searchQuery.getFieldsToBoost()中的所有特殊字符以强调。

但我不知道它将如何影响搜索结果/提升结果。

基本上,如果有人可以帮助我摆脱特殊字符,或者可以概述替换特殊字符以强调后的影响,那就太好了。

我不明白提高溶胶的目的是什么。

提升函数的目的是在返回结果时提升特定术语、文档或字段。它不会添加或更改结果集,例如,它只能更改顺序。

因此,例如,如果您决定字段标题描述更重要,则可以对其进行设置。如果你决定,耐这个词比阿迪达斯这个词更重要,也可以这样做。

此处提供一些其他信息

最新更新