Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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
Mysql 架构中没有字段-不会索引-Sphinx_Mysql_Sphinx - Fatal编程技术网

Mysql 架构中没有字段-不会索引-Sphinx

Mysql 架构中没有字段-不会索引-Sphinx,mysql,sphinx,Mysql,Sphinx,我正在使用Sphinx,我已经成功地用更简单的查询构建了索引,但是当我将COALESCE和AS MySQL关键字添加到我的查询中时,我得到了一个错误:schema中没有字段-不会索引。我想添加属性,这样我就不必查询数据库中的id匹配详细信息,我想这会快一点,如果我使用sql\u field\u string代替sql\u attr\u string,我就不会再得到错误和索引生成,但构建时间会增加三倍 SELECT r.RegistrationId, coalesce(CampaignID,'')

我正在使用Sphinx,我已经成功地用更简单的查询构建了索引,但是当我将COALESCE和AS MySQL关键字添加到我的查询中时,我得到了一个错误:schema中没有字段-不会索引。我想添加属性,这样我就不必查询数据库中的id匹配详细信息,我想这会快一点,如果我使用sql\u field\u string代替sql\u attr\u string,我就不会再得到错误和索引生成,但构建时间会增加三倍

SELECT r.RegistrationId, coalesce(CampaignID,'') as CampaignId, coalesce(FirstName,'') as FirstName, coalesce(LastName,'') as LastName, \
        coalesce(Address1,'') as Address1, coalesce(Address2,'') as Address2, coalesce(City,'') as City, coalesce(State,'') as State, \
        coalesce(Zip,'') as Zip,coalesce(Email,'') as Email, coalesce(Phone,'') as Phone,coalesce(Affiliate,'') as Affiliate, \
        coalesce(SubAffiliate,'') as SubAffiliate \
        FROM Registration r WHERE r.CreateDT >= '2013-01-01'
        sql_attr_string = CampaignId
        sql_attr_string = FirstName
        sql_attr_string = LastName
        sql_attr_string = Address1
        sql_attr_string = Address2
        sql_attr_string = City
        sql_attr_string = State
        sql_attr_string = Zip
        sql_attr_string = Email
        sql_attr_string = Phone
        sql_attr_string = Affiliate
        sql_attr_string = SubAffiliate

索引至少需要一个字段才能运行。这是不可谈判的

如果你真的不想有任何领域,可以做一个假的

…,“a”是假的


或类似的。这不会花费很长时间来索引

索引至少需要一个字段才能运行。这是不可谈判的

如果你真的不想有任何领域,可以做一个假的

…,“a”是假的


或类似的。这不会花费很长时间来索引

source employee_src{type=mysql sql_host=localhost sql_user=sphinx sql_pass=sphinx123 sql_db=test sql_port=3306 sql_query=SELECT id,city,info FROM employees sql_attr_uint=id sql_attr_string=city sql_attr_json=info}在MySQL 5.7中,每当我运行/indexer-all-rotate时,info字段的类型都是JSON。架构中没有字段不会索引。该索引只包含属性。您已经将所有列定义为属性。您的“信息”是一个属性,而不是字段。您至少需要一个字段。不可能。info也是一个包含JSON数据的字段,也是MySQL 5.7中引入的JSON类型。就Sphinx而言,它仍然不是一个字段sql_attr_json'只生成属性,不生成任何字段。阅读sphinx中的字段和属性。它们有非常具体的含义。我的表有两个列id,另一个是包含json数据的文本列,要查询json字符串的字段,我必须对该列进行两次索引,例如:sql\u query=SELECT id,parts\u jsn FROM parts\u data sql\u attr\u uint=id sql\u field\u string=parts\u jsn sql\u attr\u json=j您能告诉我这是正确的方法吗?来源:employee\u src{type=mysql sql\u host=localhost sql\u user=sphinx sql\u pass=sphinx123 sql\u db=test sql\u port=3306 sql\u query=SELECT id,city,info FROM employees sql\u attr\u uint=id sql\u attr\u string=city sql\u attr\u json=info}每当我运行MySQL 5.7时,info字段都是JSON类型。/indexer-all-rotate我收到错误。架构中没有字段不会索引。该索引只包含属性。您已将所有列定义为属性。您的“info”是属性,而不是字段。您至少需要一个字段。无论如何。info也是一个包含JSON的字段数据,也是MySQL 5.7中引入的JSON类型。就Sphinx而言,它仍然不是一个字段。“sql_attr_JSON”只生成一个属性,而不是任何字段。请阅读Sphinx中的字段和属性。它们有非常具体的含义。我有一个带有两列id的表,另一个是一个包含JSON数据的文本列,用于查询json字符串的字段我必须对列进行两次索引,例如:sql\u query=SELECT id,parts\u jsn FROM parts\u data sql\u attr\u uint=id sql\u field\u string=parts\u jsn sql\u attr\u json=j您能告诉我这样做是正确的吗?