问题列表 - 第22618页

Django的搜索引擎解决方案实际上有效吗?

到目前为止的故事:

决定使用Xapian作为搜索后端,因为它具有我正在寻找的所有搜索引擎功能,了解Unicode,干扰,具有很少的依赖性,并且不需要在其上安装膨胀的应用服务器.

尝试过Django和Haystack(再加上xapian-haystack,将Haystack与Xapian联系在一起的后端粘合代码),因为它在很多博客上被宣传为"正常工作".不工作.django-haystack和xapian-haystack项目都没有提供实际协同工作的版本组合.两个项目的MASTER从Xapian产生错误,所以它根本不稳定.Haystack 1.0.1和xapian-haystack 1.0.x/1.1.0不兼容API.另外,在Haystack 1.0.1和xapian-haystack MASTER的最低工作安装中,由于django-haystack或xapian-haystack中的错误,任何复杂查询都会产生零结果(我对此进行了双重验证),可能是因为单元测试实际上测试非常简单的情况,根本没有边缘情况.

试过Djapian.源代码充满了拼写错误(请注意,变量名称,而不是注释),文档也充满了模糊和过时的信息,永远不会导致工作安装.毫不奇怪,用户很少要求功能,但如何让它首先工作.

下一篇文章:探索Solr(安装Java环境加上Tomcat让我感到头疼,机器受RAM和CPU约束)或Lucene(稍微不那么头疼,但仍然如此).

在我继续花费更多时间使用可能会或可能不如宣传的解决方案之前,我想知道:有没有人在Django中获得实际的,真实的搜索解决方案?我是认真的.我发现阅读"大部分问题大部分都解决了",然后意识到你永远不会从源代码中获得有效的安装,这真是令人沮丧,因为实际上,处理那些"主要解决问题"的所有博客都没有超过基本安装和复制粘贴官方教程.

所以这是要求:

  • 必须能够在一个查询中搜索10-100个术语
  • 必须处理+(术语必须存在)和 - (术语不得存在),和/或
  • 必须处理任意分组(即AND/OR周围的括号)
  • 必须允许在全文搜索之前或之后进行Django-ORM过滤(即使用Django知道的全套过滤器对结果进行预处理/后处理)
  • 或者,必须有一个工具来批量获取结果集并将其转换为QuerySet
  • 应该在机器上很轻,所以最好没有大量的JVM和基于Java的app-server安装

那有什么可以做到的吗?我对轶事证据不感兴趣,或者对一些声称应该有效的博客文章的引用感兴趣.我想听听那些真实拥有全功能设置的人在现实世界中,在真实条件下,真实查询.

编辑:

让我再说一遍,我对轶事证据并不是那么感兴趣,因为有人在某个地方有一个运行不正常的安装工具.我已经去过那里,我阅读了所有的博客文章,邮件列表,我联系了作者,但是当涉及实际场景的实际实现时,没有任何像宣传的那样工作.

此外,考虑到任何项目的总体拥有成本,下面的用户也提到了这一点,我绝对没有兴趣听到有人在一个供应商在未知数量的专家中跳伞的某个地方能够将其拉下来 - 使用特定的域知识对整个安装进行修补,这些知识无法记录.

所以,如果您声称您的工作安装实际上满足了全面搜索的最低要求(请参阅上述要求),请提供以下信息,以便我们都能从Django的搜索解决方案中获益,从而真正解决问题:

  • 确切的Linux发行版,发行版,
  • Haystack(或同等版本)的确切发布版本以及搜索后端的发布版本,
  • 搜索引擎的确切发布版本
  • 公开(!)可用文档如何完全按照安装设置的方式设置所有组件,以满足上述最低要求.

谢谢.

django search full-text-search search-engine xapian

30
推荐指数
4
解决办法
4626
查看次数

用于一个对象的Django序列化程序

我试图想出一种方法将一些Django模型对象序列化为JSON格式,如:

j = Job.objects.get(pk=1)
##############################################
#a way to get the JSON for that j variable???
##############################################
Run Code Online (Sandbox Code Playgroud)

我不想要:

from django.core import serializers
serializers.serialize('json', Job.objects.get(pk=1),ensure_ascii=False)
Run Code Online (Sandbox Code Playgroud)

因为它返回JSON数组,而不是单个对象表示.

有任何想法吗?

我正在考虑的一种方法是:找到一种方法来获取对象的哈希(属性,值),然后使用simplejson来获取它的JSON表示,但是我不知道如何获得该哈希.

python django json

19
推荐指数
3
解决办法
1万
查看次数

将Macvim的文本选择配置为不包括光标下的字符

使用macvim,当我复制文本选择时,它总是包含光标下的字符.

例如,如果光标位于最左侧,我按下向下箭头,则选择整行加上下一行的第一个字符(因为光标位于下一行的第一个字符上).

有没有办法将macvim配置为不在文本选择中包含游标字符?

vim macvim

7
推荐指数
1
解决办法
1353
查看次数

当您拥有多台服务器时,石英等作业调度程序如何工作?

当您有多个服务器都运行相同的Web应用程序时,您如何确保多个作业不会被解雇(相同的工作)?

你是否必须使用数据库来监控作业是否已经运行?

java cluster-computing quartz-scheduler

5
推荐指数
1
解决办法
2382
查看次数

为什么MySQL没有定义布尔数据类型?

MySQL没有定义一个明确的布尔数据类型,而是选择为TINYINT(1)创建BOOL和BOOLEAN别名.为什么会这样?

mysql boolean

2
推荐指数
1
解决办法
1546
查看次数

跟进.是否定义了返回引用x ++?

我最近问的问题是返回x ++的行为; 界定?

结果是关于我的预期,但让我想到了类似的情况.

如果我要写

class Foo
{   
  ...   
  int x;   
  int& bar() { return x++; }
};
Run Code Online (Sandbox Code Playgroud)

bar现在返回int引用,是否定义了此行为?如果上一个问题的答案确实是真的,而不仅仅是对正在发生的事情的方便抽象,那么看起来你会返回一个堆栈变量的引用,一旦执行返回就会被销毁.

如果它只是一个抽象,我有兴趣知道后增量实际上保证了什么行为.

c++ return defined post-increment

3
推荐指数
1
解决办法
185
查看次数

Ruby:将数组插入列表后,如何检索它们并将它们作为数组处理?

这是我正在尝试做的事情:

val1 = [26, 27, 24, 25, 29, 28]
val2 = [17, 20, 22, 21]
val3 = [36, 33, 31, 29]
val4 = [20, 18, 17, 22, 21, 23]

vals = {val1, val2, val3, val4}
sum = 0
count = 0

vals.each do |val|
  for i in 0..val.size-1 do
    #sum += val[i]
    p val[i]
    ++count
  end
end

puts sum
puts count
Run Code Online (Sandbox Code Playgroud)

最初我想得到总和和数,但这不起作用,所以我尝试打印.我可以看到它val[i]并没有像我预期的那样工作.我试过这样做:

vals.each do |val|
  aux = val.to_a
  for i in 0..aux.size-1 do
    p aux[i]
    ++count
  end
end …
Run Code Online (Sandbox Code Playgroud)

ruby

1
推荐指数
2
解决办法
111
查看次数

GMail + C#+ Web.Config:以编程方式发送邮件,使用Web.Config值引发异常

鉴于以下部分Web.Config:

<system.net>
    <mailSettings>
        <smtp deliveryMethod="Network" from="SomeWebsite Admin &lt;someuser@gmail.com&gt;">
            <network host="smtp.gmail.com" port="587" defaultCredentials="true" userName="someuser@gmail.com" password="somepassword" />
        </smtp>
    </mailSettings>
</system.net>
Run Code Online (Sandbox Code Playgroud)

以下代码片段:

                smtp   = new SmtpClient();

                smtp.Host = "smtp.gmail.com";
                smtp.Port = 587;
                smtp.EnableSsl = true;
                smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
                smtp.UseDefaultCredentials = false;
                smtp.Credentials = new NetworkCredential( "someuser@gmail.com", "somepassword" );

                smtp.Send( mailMessage );
Run Code Online (Sandbox Code Playgroud)

以上工作正常,但注释程序覆盖,如下所示:

                smtp   = new SmtpClient();

                //smtp.Host = "smtp.gmail.com";
                //smtp.Port = 587;
                smtp.EnableSsl = true;
                //smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
                //smtp.UseDefaultCredentials = false;
                //smtp.Credentials = new NetworkCredential( "someuser@gmail.com", "somepassword" );

                smtp.Send( mailMessage ); …
Run Code Online (Sandbox Code Playgroud)

c# authentication gmail smtp web-config

18
推荐指数
2
解决办法
2万
查看次数

Python,动态调用脚本

我想从另一个内部运行python脚本.在内部,我的意思是来自子脚本的任何状态更改都会影响父级的状态.因此,如果在子项中设置了变量,则会在父项中更改它.

通常你可以做类似的事情

import module
Run Code Online (Sandbox Code Playgroud)

但问题是这里运行的子脚本是父脚本的参数,我认为你不能使用带变量的import

像这样的东西

$python run.py child.py
Run Code Online (Sandbox Code Playgroud)

这将是我期望发生的事情

#run.py

#insert magic to run argv[1]
print a

#child.py
a = 1

$python run.py child.py
1
Run Code Online (Sandbox Code Playgroud)

python command

5
推荐指数
1
解决办法
2044
查看次数

是否严格定义了三维数组的下标?

比方说我宣布:

int [a][b][c];
Run Code Online (Sandbox Code Playgroud)

难道一个为水平/页立场,b行和Ç列?

还是可以什么,我想这是即一个代表列,b表示页,ç代表行(因为数据仅仅是数据立方体可以抽象任何方式)?

c++ multidimensional-array

4
推荐指数
2
解决办法
291
查看次数