Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
E commerce ElasticSearch属性(键)值数据集_E Commerce_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Django Haystack - Fatal编程技术网 elasticsearch,django-haystack,E Commerce,elasticsearch,Django Haystack" /> elasticsearch,django-haystack,E Commerce,elasticsearch,Django Haystack" />

E commerce ElasticSearch属性(键)值数据集

E commerce ElasticSearch属性(键)值数据集,e-commerce,elasticsearch,django-haystack,E Commerce,elasticsearch,Django Haystack,我正在将Elasticsearch与Haystacksearch和Django一起使用,希望搜索以下结构: { { "title": "book1", "category" : ["Cat_1", "Cat_2"], "key_values" : [ { "key_name" : "key_1", "value" : "sample

我正在将Elasticsearch与
Haystacksearch
Django
一起使用,希望搜索以下结构:

{   
    {
        "title": "book1",
        "category" : ["Cat_1", "Cat_2"],
        "key_values" :
        [
            {
                "key_name" : "key_1",
                "value" : "sample_value_1"
            },
            {
                "key_name" : "key_2",
                "value" : "sample_value_12"
            }
        ]
    },

    {
        "title": "book2",
        "category" : ["Cat_3", "Cat_2"],
        "key_values" :
        [
            {
                "key_name" : "key_1",
                "value" : "sample_value_1"
            },
            {
                "key_name" : "key_3",
                "value" : "sample_value_6"
            },
            {
                "key_name" : "key_4",
                "value" : "sample_value_5"
            }
        ]
    }
}
现在,我已经使用Haystack建立了一个索引模型,其中包含一个“文本”,将所有数据放在一起并运行全文搜索!在我看来,这不是一个完善的搜索,因为我没有使用我的数据集结构,因此这有点奇怪。
例如,如果对于对象,我有一个键值

{
  "key_name": "key_1",
  "value": "sample_value_1"
}
还有一件事我有

{
  "key_name": "key_2",
  "value": "sample_value_1"
}
我们得到了一个类似“Key\u 1 sample\u value\u 1”的查询,我得到了一个完全混合的结果,对象的字段中有这些词,而不是使用它们的结构。

另外,我对ElasticSearch完全陌生,最好说是对搜索技术和挑战陌生。我在网上搜索过,所以巴顿没有找到任何令人满意的东西。请让我知道,如果有什么错误,我的想法和期望从这些搜索引擎,如果有这样重复的问题!此外,如果有更好的方法为此类搜索设计数据库,请阅读并执行以下操作:

"book_type" : {
    "properties" : {

        // title, cat mappings

        "key_values" : {
            "type" : "nested"
            "properties": {
                "key_name": {
                    "type": "string", "index": "not_analyzed"
                },
                "value": {
                    "type": "string"
                }
            }
        }
    }
}
然后询问


您可能想使用嵌套类型,请看一看我希望在回答之前看到注释!谢谢,这不是我要搜索的内容的确切答案,但它是有说服力的!:)我想我想要一个真正不存在的开源项目!这里:用户quary“a_book_name publisher sample_publisher”我在数据库中拥有什么:我在我的数据库中有一个a_book_name对象,它与一个键、值->{“publisher”:“sample_publisher”}相关!我想要一个搜索引擎智能地在我的方格中查找关键字,并在DB中搜索下一个单词的相似性和值!所以,我不想把所有的DB对象数据放在一个文本文件中,然后交给搜索引擎!想想书的标题或任何其他关键字、价值中可能存在的单词quary“apple”!希望这有帮助!谢谢我很困惑。在查询“book\u name publisher sample\u publisher”中,如何知道“publisher”是名称字段的关键字还是其他搜索词。如果你不能给我一个规则,那么你怎么能写一个程序呢?有。你可能想使用类似的东西。我的意思是SE将quary标记为单词,并搜索它是否在键中!如果是,检查下一个单词是否与值相似!再次感谢您的关注!:)你是要我决定你的规格吗?我可能会做一件简单的事情,只搜索所有字段中的所有术语,也就是说,如果您的用户只有一个搜索框。否则,我将使用上面链接的lucene查询解析器。注意,这在elasticsearch的
查询字符串中使用,因此您不必自己进行解析!只需在框下编写一些示例查询,以帮助指导用户。
"nested" : {
    "path" : "key_values",
    "query" : {
        "bool" : {
            "must" : [
                {
                    "term" : {"key_values.key_name" : "key_1"}
                },
                {
                    "match" : {"key_values.value" : "sample_value_1"}
                }
            ]
        }
    }
}