簡體   English   中英

自然語言搜索-Solr

[英]Natural Language searching - solr

我正在嘗試使用solr搜索以以下格式搜索帶有過濾器的產品

三星手機低於10000

名稱和價格是單獨的字段。 預期結果是顯示所有價格低於10000盧比的三星手機。

但是現在搜索結果僅基於名稱字段。 可以通過單個查詢考慮所有字段來執行此搜索嗎?

我的查詢:

http://localhost:8983/solr/myproducts/select?indent=on&q=memory card below 1000&rows=100&wt=json

我的data-config.xml是:

     <entity name="master_products"  
    pk="id"
    query="select p.* ,b.* ,c.* from master_products p ,master_brands b,master_product_categories c  where b.id=p.brand_id and c.id=p.product_category_id"
    deltaImportQuery="SELECT * FROM master_products WHERE product_name='${dataimporter.delta.product_name}' "
    >
    <!-- or b.brnad='${dataimporter.delta.brand}' -->

     <field column="product_name" name="name"/> 
     <field column="product_description" name="description"/> 
     <field column="id" name="id"/>
     <field column="mrp" name="mrp"/> 
     <field column="brand_id" name="brandID"/>


  <entity name="master_brands" 
    query="select * from master_brands"
    deltaImportQuery="select * from master_brands where id ={master_products.brand_id}" processor="SqlEntityProcessor" cacheImpl="SortedMapBackedCache" >
    <field column="brand" name="brand" />
  </entity>

  <entity name="master_product_categories" 
    query="select * from master_product_categories"
    deltaImportQuery="select * from master_product_categories where id ={master_products.   product_category_id}" processor="SqlEntityProcessor" cacheImpl="SortedMapBackedCache" >
    <field column="category" name="category" />
  </entity>

 </entity>  

有幾種不同的方法可以實現您的要求。 如果要保持簡單,並且對查詢解析器沒有限制,則可以通過以下方式使用eDismax查詢解析器:

http://localhost:8983/solr/myproducts/select?indent=on&q=memory card below 1000&defType=edismax&qf=name description&rows=100&wt=json

哪里有QF:

qf(查詢字段)參數

qf參數引入了一個字段列表,每個字段都分配了一個提升因子,以增加或減少該特定字段在查詢中的重要性。 例如,下面的查詢:

qf =“ fieldOne ^ 2.3 fieldTwo fieldThree ^ 0.4”

將fieldOne分配為2.3的增強值,將fieldTwo保留為默認增強值(因為未指定增強因子),並且將fieldThree分配為0.4的增強值。 這些提升因子使fieldOne中的匹配比fieldTwo中的匹配重要得多,而fieldTwo中的匹配又比fieldThree中的匹配重要得多。

從您的問題尚不清楚,是否還需要過濾1000以下的結果,如果需要,請告訴我,我將編輯答案,並將相關過濾器添加到查詢中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM