设为首页 收藏本站
查看: 719|回复: 0

[经验分享] Solr: index product and price for sellers and perfoming query and sorting

[复制链接]

尚未签到

发表于 2016-12-17 06:25:27 | 显示全部楼层 |阅读模式
In my current project,  the modle seller has multiply products with price,  I want to index products and query them then sorting them by price , seller's credit ,the distance between the seller and the user while highlighting the matched products.
 
Due to solr flatten one-to-many relationship, so I should use multiVlaude field to store products and their prices for a seller. 
The schema likes

<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="name" type="text_ch" indexed="true" stored="true" />
<field name="district" type="text_ch" indexed="true" stored="true" />
<field name="location" type="location_rpt" indexed="true" stored="true" multiValued="true"/>
<field name="commodities" type="text_ch" indexed="true" stored="true" multiValued="true"/>
<field name="price" type="long" indexed="true" stored="true" multiValued="true"/>
 
the data indexed likes

<doc>
<str name="id">1</str>
<str name="name">宜宾燃面</str>
<arr name="location">
<str>39.916927,116.363737</str>
</arr>
<int name="credit">90</int>
<str name="district">北京西城区</str>
<date name="created_at">2015-06-18T15:34:34Z</date>
<arr name="commodities">
<str>炒面</str>
<str>牛肉面</str>
</arr>
<arr name="price">
<long>23</long>
<long>18</long>
</arr>
<long name="_version_">1510459679273123840</long>
<str name="data_source">seller</str></doc>
<doc>
 
The option can't sort product by price.
 
How to do it?
---------------------------------------------------
How about to create two cores to meet  my demands?
sellers likes

<doc>
<str name="id">1</str>
<str name="name">宜宾燃面</str>
<arr name="location">
<str>39.916927,116.363737</str>
</arr>
<int name="credit">90</int>
<str name="district">北京西城区</str>
<date name="created_at">2015-06-18T15:34:34Z</date>
<long name="_version_">1510545445415288832</long>
<str name="data_source">seller</str></doc>
<doc>
 
products likes

<doc>
<str name="id">1</str>
<str name="name">炒面</str>
<str name="seller_id">1</str>
<long name="price">21</long>
<long name="_version_">1510545648643997696</long></doc>
<doc>
 
query likes

"params": {
"d": "50",
"indent": "true",
"spatial": "true",
"sfield": "location",
"hl.simple.pre": "<em>",
"wt": "json",
"hl": "true",
"fl": "*,score,dist:geodist()",
"q": "*:* AND _val_:\"product(scale(credit,1,10),recip(geodist(),3,1,0.1))\"\n",
"pt": "30.548526,104.062889",
"_": "1440573751492",
"hl.simple.post": "</em>",
"fq": [
"{!join fromIndex=products toIndex=sellers from=seller_id to=id} name:我要一份牛肉面",
"{!geofilt}"
]
 
but this option can not sort docs by  product's price and highlighting not work.  Meanwhile the product's fileds will not returned.
 
--------------------------------------
How about using nested document model?
but. I found this

All children of a parent document must be indexed together with the parent document. One cannot update any document (parent or child) individually. The entire block needs to be re-indexed of any changes need to be made.
 
Due to seller  updating his products frequently, this option cann't meet our situation.
 
 
--------------------------------------
 
 
 
 
References
http://stackoverflow.com/questions/7845337/sorting-with-multivalued-field-in-solr
  http://yonik.com/solr-nested-objects/
 
 
 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-315195-1-1.html 上篇帖子: lucene和solr的分词器词库如何从数据库加载? 下篇帖子: solr中使用IKAnalysizer 基于配置的自定义词典扩充
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表