Mikhail, I can't tell you how much I appreciate your response! Thank you.
I am very new at doing anything with solr and feel very out of my element. I'm
pasting the request handler from solrconfig.xml below. It was written by some
folks in my consulting organization that are long since gone and, as a whole,
the whole team never really had anyone who understood solr anyway (so nothing's
changed!).
We have other document types and when we query them the field list is short so
it's no problem explicitly passing fl for those. But I see below someone from
the past has explicitly left a comment that they intended parameters to be
explicitly overridden in the request (at least for fq).
So... if I understand the solr doc correctly (and maybe I don't), I really just
have to specify my field list here??
How do I handle column aliases and function calls like:
_13_Beneficiary_Address:def(BENEADDRESS,%22%22)?
After some late night reading it almost even sounded like I could use simple
parameter substitution to maintain my field list. Is that an insane idea??
Many many thanks!!
Teresa
<requestHandler name="/select" class="solr.SearchHandler">
<lst name="defaults">
<str name="q">*:*</str>
<str name="defType">edismax</str>
<str name="stopwords">true</str>
<str name="lowercaseOperators">true</str>
<str name="rows">10</str>
<str name="df">_tokens</str>
<!-- PSD - phrase boosting...only affects relevancy,
not inclusion -->
<str name="pf">_tokens^3</str>
<str name="ps">10</str>
<str name="pf2">_tokens^2</str>
<str name="ps2">1</str>
<!-- PSD - field boosting -->
<str name="qf">_primaryLabels^10 doc_id^50
telephoneNumbers^5 nationalIdentifiers^5 _tokens</str>
<str name="f._primaryLabels.qf">
alertid
risk_assessment_id
account_name
account_number
bank_number
bank_name
party_name
party_number
household_number
head_of_household_name
ext_party_number
full_name
associate_number
associate_full_name
branch_number
branch_name
case_id
report_key
entity_id
attachment_name
title
filename
TRANSACTION_KEY
TRANSACTION_REFERENCE_NUMBER
BENE
BENEACCT
BENECUSTID
BYORDER
BYORDERACCT
BYORDERCUSTID
</str>
<!-- We want to omit transactions from the global search, since it
doesn't know how to display them
All targeted searches MUST send an fq param to override this
default.
That fq should contain the doc_type:[name] filter that was
originally in the q param.
As long as fq is present (even if empty) it'll override this
default. -->
<str name="fq">-doc_type:trxn</str>
<!-- end PSD Additoin -->
</lst>
</requestHandler>
<!-- config for the admin interface -->
<admin>
<defaultQuery>solr</defaultQuery>
</admin>
-----Original Message-----
From: Mikhail Khludnev <[email protected]>
Sent: Tuesday, October 18, 2022 2:53 AM
To: [email protected]
Subject: Re: How to implement custom transform class
Hello, Teresa.
It doesn't seem to like a case for the result transformer.
Note:
- Huge parameters can be sent via POST (and even get) in the request
body/payload. Here's an example $curl --request GET --url
http://localhost:8984/solr/testcore/select
--header 'content-type: application/x-www-form-urlencoded' --data 'q=*:*'
Btw, colleagues, is it described anywhere in the ref guide?
- long static fl param can be configured as default handler param
https://solr.apache.org/guide/solr/latest/configuration-guide/requesthandlers-searchcomponents.html#defaults
- large rows values can burn one's CPU, it's rather preferable scroll results
with cursors see
https://solr.apache.org/guide/solr/latest/query-guide/pagination-of-results.html#performance-problems-with-deep-paging
Enjoy
On Mon, Oct 17, 2022 at 4:51 PM Teresa McMains <[email protected]>
wrote:
> Hi. I have a client using solr version 5.5.x. We're using solr within
> a third party application which calls a URL to return some documents
> which it will display on a web page. The URL has become ridiculously
> long and I would like to switch it to use a custom transformer and
> have read the documentation at:
> https://solr.apache.org/guide/8_6/transforming-result-documents.html
> but I'm not entirely sure what I'm doing, aside from maybe using a subquery?
> Could someone help set me on the right path? Our URL is below. The
> field aliases are necessary to permit everything to display as the
> client wants it.
>
> Many thanks!
> Teresa
>
>
> /solr/aml/select?q=BENE_ENTITY_NUMBER%3A%22${customerNumber}%22%2BOR%2
> BBYORDER_ENTITY_NUMBER%3A%22${customerNumber}%22&wt=json&fl=_1_Trigger
> :if(termfreq(TRIGGERED_ENTITIES,%22${customerNumber}%22),%22Y%22,%22N%
> 22),_2_Duplicate:def(TRANSACTION_DESCRIPTION,%22%22),_3_Transaction_No
> :TRANSACTION_REFERENCE_NUMBER,_4_Transaction_Date:TRANSACTION_DATE,_5_
> Amount:CURRENCY_AMOUNT,_6_ByOrder_Name:def(BYORDER,%22%22),_7_ByOrder_
> Id:BYORDER_ENTITY_NUMBER,_8_ByOrder_Address:def(BYORDERADDRESS,%22%22)
> ,_9_ByOrder_Country:def(BYORDERCOUNTRY,%22%22),_10_ByOrder_Bank_Name:d
> ef(BYORDERBANK,%22%22),_11_Beneficiary_Name:def(BENE,%22%22),_12_Benef
> iciary_Id:BENE_ENTITY_NUMBER,_13_Beneficiary_Address:def(BENEADDRESS,%
> 22%22),_14_Beneficiary_Country:def(BENECOUNTRY,%22%22),_15_Beneficiary
> _Bank_Name:def(BENEBANK,%22%22),_16_Primary_Medium:def(PRIMARY_MEDIUM_
> DESC,%22%22),_17_Secondary_Medium:def(SECONDARY_MEDIUM_DESC,%22%22),_1
> 8_Alert_Ids:TRIGGERED_ALERTS,_19_Alert_Descriptions:def(TRIGGERED_ALER
> T_DESCRIPTIONS,%22%22),_20_Mechanism:def(MECHANISM_DESC,%22%22),_21_Instructions:INSTRUCTIONS,_22_Transaction_Type:def(TRANSACTION_CDI_DESC,%22%22),_23_ByOrder_Account:def(BYORDERACCT,%22%22),_24_ByOrder_Cust_Id:def(BYORDERCUSTID,%22%22),_25_Beneficiary_Account:def(BENEACCT,%22%22),_26_Beneficiary_Cust_Id:def(BENECUSTID,%22%22),_27_ByOrder_Bank_Cust_Id:def(BYORDERBANKCUSTID,%22%22),_28_ByOrder_Bank_Id:def(BYORDERBANKID,%22%22),_29_ByOrder_Bank_Account:def(BYORDERBANKACCT,%22%22),_30_ByOrder_Bank_Address:def(BYORDERBANKADDRESS,%22%22),_31_ByOrder_Bank_Country:def(BYORDERCOUNTRY,%22%22),_32_Sender_Bank_Name:def(SEND_BANK,%22%22),_33_Sender_Bank_Cust_Id:def(SEND_BANK_CUST_ID,%22%22),_34_Sender_Bank_Id:def(SEND_BANK_ID,%22%22),_35_Sender_Bank_Account:def(SEND_BANK_ACCT,%22%22),_36_Sender_Bank_Address:def(SEND_BANK_ADDRESS,%22%22),_37_Sender_Bank_Country:def(SEND_BANK_COUNTRY,%22%22),_38_Intermediary3_Bank_Name:def(INTERMEDIARY3,%22%22),_39_Intermediary3_Bank_Cust_Id:def(INTERMEDIARYCUSTID3,%22%22),_40_Intermediary3_Bank_Id:def(INTERMEDIARYID3,%22%22),_41_Intermediary3_Bank_Account:def(INTERMEDIARYACCT3,%22%22),_42_Intermediary3_Bank_Address:def(INTERMEDIARYADDRESS3,%22%22),_43_Intermediary3_Bank_Country:def(INTERMEDIARYCOUNTRY3,%22%22),_44_Intermediary4_Bank_Name:def(INTERMEDIARY4,%22%22),_45_Intermediary4_Bank_Cust_Id:def(INTERMEDIARYCUSTID4,%22%22),_46_Intermediary4_Bank_Id:def(INTERMEDIARYID4,%22%22),_47_Intermediary4_Bank_Account:def(INTERMEDIARYACCT4,%22%22),_48_Intermediary4_Bank_Address:def(INTERMEDIARYADDRESS4,%22%22),_49_Intermediary4_Bank_Country:def(INTERMEDIARYCOUNTRY4,%22%22),_50_Receiver_Bank_Name:def(REC_BANK,%22%22),_51_Receiver_Bank_Cust_Id:def(REC_BANK_CUST_ID,%22%22),_52_Receiver_Bank_Id:def(REC_BANK_ID,%22%22),_53_Receiver_Bank_Account:def(REC_BANK_ACCT,%22%22),_54_Receiver_Bank_Address:def(REC_BANK_ADDRESS,%22%22),_55_Receiver_Bank_Country:def(REC_BANK_COUNTRY,%22%22),_56_Bene_Bank_Cust_Id:def(BENEBANKCUSTID,%22%22),_57_Bene_Bank_Id:def(BENEBANKID,%22%22),_58_Bene_Bank_Account:def(BENEBANKACCT,%22%22),_59_Bene_Bank_Address:def(BENEBANKADDRESS,%22%22),_60_Bene_Bank_Country:def(BENEBANKCOUNTRY,%22%22),,_61_Instgagt_Bank_Name:def(INSTGAGT,%22%22),_62_Instgagt_Bank_Cust_Id:def(INSTGAGTCUSTID,%22%22),_63_Instgagt_Bank_Id:def(INSTGAGTID,%22%22),_64_Instgagt_Bank_Account:def(INSTGAGTACCT,%22%22),_65_Instgagt_Bank_Address:def(INSTGAGTADDRESS,%22%22),_66_Instgagt_Bank_Country:def(INSTGAGTCOUNTRY,%22%22),_67_Instdagt_Bank_Name:def(INSTDAGT,%22%22),_68_Instdagt_Bank_Cust_Id:def(INSTDAGTCUSTID,%22%22),_69_Instdagt_Bank_Id:def(INSTDAGTID,%22%22),_70_Instdagt_Bank_Account:def(INSTDAGTACCT,%22%22),_71_Instdagt_Bank_Address:def(INSTDAGTADDRESS,%22%22),_72_Instdagt_Bank_Country:def(INSTDAGTCOUNTRY,%22%22),_73_Bene2_Bank_Name:def(BENE2,%22%22),_74_Bene2_Bank_Cust_Id:def(BENECUSTID2,%22%22),_75_Bene2_Bank_Id:def(BENEID2,%22%22),_76_Bene2_Bank_Account:def(BENEACCT2,%22%22),_77_Bene2_Bank_Address:def(BENEADDRESS2,%22%22),_78_Bene2_Bank_Country:def(BENECOUNTRY2,%22%22),_79_Byorder2_Bank_Name:def(BYORDER2,%22%22),_80_Byorder2_Bank_Cust_Id:def(BYORDERCUSTID2,%22%22),_81_Byorder2_Bank_Id:def(BYORDERID2,%22%22),_82_Byorder2_Bank_Account:def(BYORDERACCT2,%22%22),_83_Byorder2_Bank_Address:def(BYORDERADDRESS2,%22%22),_84_Byorder2_Bank_Country:def(BYORDERCOUNTRY2,%22%22),_85_Prvsinstgagt1_Bank_Name:def(PRVSINSTGAGT1,%22%22),_86_Prvsinstgagt1_Bank_Cust_Id:def(PRVSINSTGAGTCUSTID1,%22%22),_87_Prvsinstgagt1_Bank_Id:def(PRVSINSTGAGTID1,%22%22),_88_Prvsinstgagt1_Bank_Account:def(PRVSINSTGAGTACCT1,%22%22),_89_Prvsinstgagt1_Bank_Address:def(PRVSINSTGAGTADDRESS1,%22%22),_90_Prvsinstgagt1_Bank_Country:def(PRVSINSTGAGTCOUNTRY1,%22%22),_91_Notes:NOTES,_92_System_Reference:MTR_SYS_REF,_93_Raw_Message:def(RAW_MESSAGE,%22%22)%26fq=doc_type%3Atrxn&rows=100000&start=0
>
--
Sincerely yours
Mikhail Khludnev