标签: pysolr

如何在PYTHONPATH中添加一些东西?

我将一个包(称为pysolr 2.0.15)下载到我的计算机上,与Haystack一起使用.说明要求我将pysolr添加到我的PYTHONPATH中.

这到底是什么意思呢?在解压缩pysolr文件之后,我运行了命令python setup.py install,这就是它.我做了什么,我还需要做什么?

谢谢您的帮助!

python django pysolr pythonpath django-haystack

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

Django,Haystack,Solr和Boosting

TLDR;

各种助推类型如何在django,django-haystack和solr中协同工作?

我无法将最明显的搜索结果首先显示出来.如果我搜索caring for others并获得10个结果,则带有标题的对象caring for others在结果之后显示为第二个caring for yourself.

文件提升

我有文件提升Category对象factor = 2.0 - ((the mptt tree level)/10)因此根节点为1.9,第二级为1.8,第三级为1.7,依此类推.(或190%,180%,170%......等等)

现场提升

boost=1.5150%的正面因素推动了产权提升boost=.550%的负面因素

期限提升

我目前没有提高任何搜索条件.

我的目标

我想得到一个结果列表类别和文章(我忽略文章,直到我得到我的类别结果直接).类别加权高于文章,标题加权高于内容.此外,我正在尝试将根类别节点加权高于子节点.

我觉得我在某个地方错过了一个关键概念.

信息

我正在使用haystack的内置搜索表单和搜索视图.

我正在使用以下package/lib版本:

Django==1.4.1
django-haystack==1.2.7
pysolr==2.1.0-beta
Run Code Online (Sandbox Code Playgroud)

我的索引类

class CategoryIndex(SearchIndex):
    """Categorization -> Category"""
    text = CharField(document=True, use_template=True, boost=.5)
    title = CharField(model_attr='title', boost=1.5)
    content = CharField(model_attr='content', boost=.5)
    autocomplete = EdgeNgramField(model_attr='title')

    def prepare_title(self, object): 
        return object.title

    def prepare(self, obj):
        data = super(CategoryIndex, self).prepare(obj)
        base_boost = …
Run Code Online (Sandbox Code Playgroud)

django solr pysolr django-haystack

9
推荐指数
1
解决办法
2225
查看次数

django-haystack:无法向Solr添加文档:[原因:找不到错误404]

我正在使用django-haystack(v 2.3.1)与solr(v 5.0.0)和pysolr(v 3.0.0).我一直在下面的教程,并建立了类似myapp/search_indexes.pysearch/indexes/myapp/mymodel_text.txt文件.

./manage.py build_solr_schema > schema.xml 工作正常,我已将其复制到$ SOLR_HOME/conf/schema.xml.

我尝试时会出现问题./manage.py rebuild_index.首先,我要求确认:

警告:这将从连接"default"中的搜索索引中无可挽回地删除所有内容.
此后您的选择是从备份还原或通过rebuild_index命令重建.
你确定要继续吗?[y/N] y

然后,它失败了:

从您的索引中删除所有文档,因为您这样说.
无法清除Solr索引:[原因:未找到错误404]
已删除所有文档.
索引6个故事
无法向Solr添加文档:[原因:找不到错误404]

我的连接设置是:

#settings.py
HAYSTACK_CONNECTIONS = {
    'default': {
        'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
        'URL': 'http://127.0.0.1:8983/solr',
    },
}
Run Code Online (Sandbox Code Playgroud)

如果我导航到此网址,我可以看到solr管理页面.我确保端口8983对于solr是开放的(以及Django开发服务器的8000).

我觉得我可能没有提供足够的连接信息,但还有什么可以检查?

更新:
虽然我解决了这个问题,但还有更多问题,所有这些都是通过使用solr(v.4.7.0)来修复的,因为django-haystack还没有为solr 5做好准备(有一个与此相关的问题但是我再也无法在github上找到它.

solr pysolr django-haystack

9
推荐指数
1
解决办法
2841
查看次数

Django/python和Apache Solr:pysolr还是solrpy?

在这个论坛上全新的,这是我的第一篇文章!在工作中我们正在开始一个使用Apache Solr的项目,我负责前端系统(基于Django).

我们的solr数据库与任何其他数据库引擎无关,也与任何模型类无关,因此Haystack对我们不利(因为它与模型严格相关).

我正在查看http://code.google.com/p/pysolr/http://code.google.com/p/solrpy/

基本上,它们是相似的.我更喜欢solrpy,因为它使用POST请求,我们可以屏蔽我们的用户查询,但这使得它的分页器更难使用(我猜...).另一方面,由于GET方法,pysolr执行得更好(查询时间更短),但到目前为止,如果没有得到badrequest错误,我无法执行查询.

在选择之前,我想向社群提出任何意见.用户只需要进行搜索,我们的数据由java进程处理,不使用其他数据库(存储用户信息除外),我们需要使用所有solr功能(faceting,highlight,word stop,analyzers ......) .你会选择什么?为什么?你可以指点我的任何好的代码示例?我正在通过干草堆来源看看他们是如何实现所有......

谢谢大家!

python django solr pysolr

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

无法向 Solr 添加文档:Solr 响应错误(HTTP 400)(django + haystack + solr)

我目前在生产中使用 Solr 4.2.0(大约在 2012 年建立)。我已经建立了一个新的开发环境,我升级了所有包(Django 1.8.10、PySolr 3.4.0、Haystack 2.4.1)并设置了 Solr 5.5.0

简而言之

我运行了 Solr,我的核心/集合是用 'basic_configs' 创建的,它似乎运行良好,除了在索引期间我遇到了很多类似于以下的错误:

All documents removed.
Indexing 9604 contracts
Failed to add documents to Solr: Solr responded with an error (HTTP 400): [Reason: ERROR: [d
oc=accounting.contract.22] unknown field 'status']
Failed to add documents to Solr: Solr responded with an error (HTTP 400): [Reason: ERROR: [d
oc=accounting.contract.70556] unknown field 'date_signed']
Failed to add documents to Solr: Solr responded with an error (HTTP 400): [Reason: ERROR: [d
oc=accounting.contract.72059] unknown field …
Run Code Online (Sandbox Code Playgroud)

python django solr pysolr django-haystack

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

使用转义solr保留关键字进行Solr搜索

如何在solr中查询包含solr保留关键字的字段为":"?

例如,

q = 'uri:http://www.example.com'
Run Code Online (Sandbox Code Playgroud)

为包含保留字":"的" http://www.example.com " 引发错误

python solr pysolr

4
推荐指数
1
解决办法
2826
查看次数

pysolr 更新文档出错

更新: Pysolr 版本:3.2.0

这似乎是 solr 中的一个错误。在操作中不更新任何内容时,它将删除此文档。

以前我在原子更新使用 pysolr 时使用了代码,但在以下情况下我犯了错误

现在文档架构可能是这样的:

doc = {
   'id':    ...,
   'title': ...,
   'body':  ...,
}
Run Code Online (Sandbox Code Playgroud)

我已经索引了一批文档,现在我想用一个新字段 anchor_text 更新每个文档。这是我的代码:

solr = pysolr.Solr(url_solr)
doc_update = {
   'id': ...,
   'anchor_text': [a,b,c,...]
}
solr.add([doc_update], fieldUpdates={
    'anchor_text': 'set'
})
Run Code Online (Sandbox Code Playgroud)

但我发现一些原始文档仅在留下id字段时被删除。更新后是这样的:

doc = {
  'id':...
}
Run Code Online (Sandbox Code Playgroud)

特别是,对于那些其 anchor_text 字段为空列表的人,原始文档被删除。而其他人则不是。(可能我猜是因为我只看到几个案例)。

我查看了源代码,但没有发现任何有价值的内容。这里发生了什么?

在更新文档中使用 pysolr 的正确方法是什么?

pysolr python-2.7

4
推荐指数
1
解决办法
965
查看次数

Django-Haystack 和 Solr 8.5.1

Django haystack 是否适用于最新的 Solr 更新(8.5.1)?另外我如何设置我的 Django 博客项目

django solr pysolr django-haystack

4
推荐指数
1
解决办法
3431
查看次数

Pysolr过滤搜索

我正在使用pysolr-2.0.15 api进行SOLR搜索

mysite:8983/solr/select/?q=disease&fq=url:"pediatric"&version=2.2&start=0&rows=10&indent=on
Run Code Online (Sandbox Code Playgroud)

这个SOLR查询给了我成功的结果

我想用pysolr搜索功能来实现它

我正在尝试这个

results = conn.search('disease "url:Pediatric"')
Run Code Online (Sandbox Code Playgroud)

但结果不正确.

另一个问题是搜索方法只返回10条记录我怎样才能获得所有搜索结果.

谁能帮我吗?

solr pysolr

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

如何在PySolr中使用构面-似乎无法显示构面结果

(我已经看到了与此类似的问题-但似乎无法解决以下原因为何不起作用!)

嗨,我有一个正在运行的solr本地实例,并进行了以下调用(通过浏览器中的url框):

http://localhost:8983/solr/select?q=video&rows=0&facet=true&facet.field=q_date
Run Code Online (Sandbox Code Playgroud)

并获得以下结果(请参见结果1)。然后,我尝试使用Python / PySolr进行等效处理:

solr = pysolr.Solr('http://localhost:8983/solr/', timeout=10)

params = {
  'facet': 'true',
  'facet.field': 'q_date',
  'rows': '0',
}

results = solr.search('video', **params)
Run Code Online (Sandbox Code Playgroud)

而且似乎没有任何结果(如果我做“ rows”:10,那么我得到10个结果)-但无论哪种情况,我似乎都没有任何方面。

任何想法如何解决这个问题?在弄清楚这一点之后,我也希望使用StatsComponent功能(例如,&stats = true&stats.field = q_visits)

提前致谢

结果1:

<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">2</int>
<lst name="params">
<str name="facet">true</str>
<str name="q">video</str>
<str name="facet.field">q_date</str>
<str name="rows">0</str>
</lst>
</lst>
<result name="response" numFound="670" start="0"/>
<lst name="facet_counts">
<lst name="facet_queries"/>
<lst name="facet_fields">
<lst name="q_date">
<int name="2013-03-31T00:00:00Z">135</int>
<int name="2013-01-31T00:00:00Z">121</int>
<int name="2012-10-31T00:00:00Z">113</int>
<int name="2013-02-28T00:00:00Z">112</int>
<int name="2012-11-30T00:00:00Z">107</int>
<int name="2012-12-31T00:00:00Z">82</int>
</lst>
</lst>
<lst name="facet_dates"/> …
Run Code Online (Sandbox Code Playgroud)

python solr pysolr

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

标签 统计

pysolr ×10

solr ×8

django ×5

django-haystack ×5

python ×5

python-2.7 ×1

pythonpath ×1