Hi,

I am working on a scenario trying to boost certain documents while indexing
over other documents.

I am using  a DataImportHandler to import JSON documents from a MongoDB
datasource.

Here's my data-source-config file :

<dataConfig>
<dataSource name="mongod" type="JdbcDataSource"
driver="com.mongodb.jdbc.MongoDriver" url="mongodb://<<HOST>>:27017/CORE"/>
 <script><![CDATA[
    function BoostDoc(row) {
       if(row.get('boost') == '10') {
          row.put('$docBoost', 10);
       }
if(row.get('boost') == '20') {
          row.put('$docBoost', 20);
       }
   if(row.get('boost') == '30') {
          row.put('$docBoost', 30);
       }
       return row;
    }
  ]]></script>
<document name="products">
<entity name="products"
dataSource="mongod"
transformer="ProdsCatsFieldTransformer,script:BoostDoc,TemplateTransformer"
onError="continue"
pk="uuid"
query="SELECT  idStr,orgidStr,name,boost,code,description....
        FROM products"
deltaImportQuery="SELECT idStr,orgidStr,name,boost,code,description....
        FROM products"...
deltaQuery="SELECT idStr FROM products WHERE orgidStr ....

>
<field column="idStr" name="prod_idStr"/>
<field column="uuid" name="uuid" template="prod-${products.idStr}"/>
<field column="orgidStr" name="prod_org"/>
<field column="name" name="prod_name"/>
<field column="boost" name="prod_boost"/>

I have added omiNorms to unique identifier  - uuid.


With this configuration I am unable to see any change in the results
returned while search.Basically I would like to have documents with boost
value 30 to be shown above the documents with value 10 or 20.

Is there change I need to make in order to apply boost values using
$docBoost with ScriptTransformer ?

Also any other alternative approach that I may use for achieving the
boosted documents to show up in the results list.



Regards,

Abhijit

Reply via email to