我试图根据"喜欢"的数量来订购结果.
最明显的解决方案是为每行设置一个"赞"字段,并为每个点击"喜欢"的用户重新索引文档.但在这种情况下,重新索引大型文档并不实用.
(以下是为了举例:没有涉及大型文件)
理想情况下,我想将Solr中的数据和用户操作索引为单独的行.
的数据行(如下所示)是随时间相对稳定.
id:place_1
title: ela restaurant
meta: sea food, chinese food festival
description: this place...
Run Code Online (Sandbox Code Playgroud)
的动作的行各自用户点击"喜欢"时间插入.
id:action_43141
action:like
user:john
target:place_1
id:action_44323
action:like
user:doe
target:place_1
Run Code Online (Sandbox Code Playgroud)
如果每个喜欢存在于自己的行上,我怎么能根据喜欢的数量来提升结果呢?
我知道即将到来的Solr 4.0中存在连接http://wiki.apache.org/solr/Join.但它会根据匹配的行数改善分数吗?
如果文档被列为Book> Fiction> Sci-FI,则当您的facet查询为"Book","Book> Fiction","Book> Fiction> Sci-fi"时,它必须是可搜索的.
我搜索了互联网,我想出的方法是:
1在索引时将"书籍>小说>科幻"分为"书籍","书籍>小说","书籍>小说>科幻",并将它们存储在同一个字段中.
2有单独的字段cat,sub_cat,sub_sub_cat.将catogories拆分为相应的字段并使用Pivot facet http://wiki.apache.org/solr/SimpleFacetParameters#Pivot_.28ie_Decision_Tree.29_Faceting
进行层次结构方面的其他方法是什么,以便它们可以支持任何复杂的查询?
我说的是JSON转换,如:
>>> a = {'asas': 1/7.0}
>>> b = json.dumps(a)
>>> c = json.loads(b)
>>> c
{u'asas': 0.14285714285714285}
>>> c['asas'] == 1.0/7
True
Run Code Online (Sandbox Code Playgroud)
JSON编码是否保证不会舍入数字?
在我的如何将浮点数作为文本存储而不会丢失精度?马克迪金森说,这repr不会造成精度损失.是否json.dumps使用repr?
什么是合适的响应代码和消息:
?, /URL参数中的破解内容目前,我们使用400.
我们在主从配置中使用Solr 3.6,在100个内核中使用100万个文档,并且需要24小时正常运行时间.我们希望升级到Solr 4.0.
我相信正确的方法是将旧索引的文件系统副本复制到新位置,并使用以下命令配置SolrConfig:
<luceneMatchVersion>LUCENE_33</luceneMatchVersion>
Run Code Online (Sandbox Code Playgroud)
问题1:这会使Solr使用过时的格式吗?这会以在线方式将索引转换为4.0格式吗?
问题2:是否有更好的方法需要更少的停机时间来转换索引?我可以从旧服务器复制到新服务器吗?
问题3:任何人都可以确认Solr 4.0是否可以像我们一样安全使用?
我有一个表中的字符串主键一样12a4...,c3af....我想并行处理它们:
process_them(1,4) on machine 1
process_them(2,4) on machine 2
process_them(3,4) on machine 3
process_them(4,4) on machine 4
Run Code Online (Sandbox Code Playgroud)
执行上述操作必须选择表中的所有行,而不需要彼此协调机器.我能想到的最好的想法是将它们分成16个像:
select * from table where id like '1%'
...
select * from table where id like 'e%'
select * from table where id like 'f%'
Run Code Online (Sandbox Code Playgroud)
是否有一个更好的想法,允许我更多的分裂,如总行的1/2,1/4,1/8,1/16,1/32等?
注意:我这样做是为了对用户数据进行夜间处理并向他们发送通知.我没有编辑DB本身的任何内容.而且我们需要一次处理数千个用户,它不能以细粒度的方式进行拆分,因为它不会那么高效.
我希望post基于类的视图中的方法是原子的.我已经定义了这个类:
class AcceptWith(View):
@method_decorator(login_required)
@method_decorator(user_passes_test(my_test))
@method_decorator(transaction.atomic)
def dispatch(self, *args, **kwargs):
return super(AcceptWith, self).dispatch(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
我想捕捉与前缀开头的所有URL /stuff,这样下面的例子匹配:/users,/users/,和/users/604511/edit。目前我编写了多个规则来匹配所有内容。有没有办法编写一个规则来匹配我想要的?
@blueprint.route('/users')
@blueprint.route('/users/')
@blueprint.route('/users/<path:path>')
def users(path=None):
return str(path)
Run Code Online (Sandbox Code Playgroud) 我希望在Python中实现OAuth v1提供程序(是的,独立于GAE和Django).我能想到的最好的事情就是使用这个库:
https://github.com/simplegeo/python-oauth2
但它缺少模拟服务器和数据存储之外的文档.有更好的方法: