django - Django-haystack 使用 Solr 索引列表而不是原始数据

标签 django solr lucene django-haystack pysolr

我在使用 django-haystack + Solr 时面临一个奇怪的问题:每个字段都会收到一个列表,而不是实际的原始值。

建立索引后,以下是我的 Solr 索引的摘录(从 Solr admin 粘贴):

{
    "id":"forum.category.4",
    "django_ct":["forum.category"],
    "django_id":[4],
    "text":["Divers"],
    "name":["Divers"],
    "url":["/forum/#divers"],
    "url_str":["/forum/#divers"],
    "name_str":["Divers"],
    "django_ct_str":["forum.category"],
    "text_str":["Divers"]},

正如您所看到的,每个相关数据都在 1 元素列表中建立索引,这使得进一步查询变得不可能。

这是我的索引定义:

class CategoryIndex(indexes.SearchIndex, indexes.Indexable):
    text = indexes.CharField(document=True, model_attr='name')
    name = indexes.CharField(model_attr='name')
    url = indexes.CharField(indexed=False)

    def get_model(self):
        return Category

    def prepare_url(self, obj):
        return obj.get_absolute_url()

有什么建议吗?提前致谢。

最佳答案

如果您尚未在 Solr 中为集合设置显式架构,并且您正在使用数据驱动配置集(也称为无架构模式),则默认情况下所有字段都是多值的。使用正确的架构并将字段设置为 multiValued="false" 以获得您正在寻找的行为。

对于django-haystack you can use the build_solr_schema commandmanage.py

关于django - Django-haystack 使用 Solr 索引列表而不是原始数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49954492/

相关文章:

python - 过多的日志记录会影响 Web 应用程序的性能吗?

python - 来自动态字段的外键资源

solr - Total Documents Processed = 0 尽管 Total Rows Fetched 在 Oracle 数据库中使用 Solr 不为零

java - 检索每个文档 Neo4j Lucene 的分数,而不仅仅是顺序

json - 在grafana中使用正则表达式从字符串字段中提取值

java - Lucene Phrase 查询不完整单词

django - 如何修复 Aptana pydev django mongo-engine 中的 "Undefined variable from import: objects"?

jquery - (Django) AJAX 请求的 CSRF 验证在 Chrome 中工作,但在 Firefox 中不起作用

solr - minimum_should_match 与 dis-max-query 相关

ruby-on-rails - 无法重新索引 Sunspot SOLR - 错误 - RSolr::Error::Http - 500 内部服务器错误