错误 1064 (42000):manticore 中没有这样的本地索引

如何解决错误 1064 (42000):manticore 中没有这样的本地索引

我正在尝试使用官方 go-sdk 连接到 manticore 数据库。我使用文档说明,希望我添加一个 DROP一个 CREATE 语句,以便以编程方式创建 testrt 索引。

func FillManticore(w http.ResponseWriter,r *http.Request) {
    sess := session.Instance(r)
    cl := manticore.NewClient()
    cl.SetServer("localhost",9312)
    cl.open()

    q := "DROP TABLE testrt"
    res,err := cl.Sphinxql(q)
    if err != nil {
        fmt.Println("create error:",q)
    }

    q = "CREATE TABLE testrt(id int,title text,content text,counter int)"
    fmt.Println("create query is:",q)
    res,err = cl.Sphinxql(q)
    if err != nil {
        fmt.Println("create error:",q)
    }

    res,err = cl.Sphinxql(`replace into testrt values(1,'my subject','my content',15)`)
    fmt.Println(res,err)
    res,err = cl.Sphinxql(`replace into testrt values(2,'another subject','more content',err = cl.Sphinxql(`replace into testrt values(5,'again subject','one more content',10)`)
    fmt.Println(res,err)
    res2,err2 := cl.Query("subject","testrt")
    fmt.Println(res2,err2)

但我明白了:

[ERROR 1064 (42000): no such local index 'testrt'] <nil>
[ERROR 1064 (42000): no such local index 'testrt'] <nil>
[ERROR 1064 (42000): no such local index 'testrt'] <nil>
<nil> <nil>

文档真的很空闲,所以我无法弄清楚我的代码有什么问题。所以我很感激你的提示

解决方法

错误的是您不能添加名为 id 的列,因为默认情况下有一个列。如果您直接使用 mysql 客户端尝试相同的查询,您将得到:

mysql> CREATE TABLE testrt(id int,title text,content text,counter int);
ERROR 1064 (42000): error adding index 'testrt': can not add multiple attributes with same name 'id'

这是固定代码:

    cl := manticore.NewClient()
    cl.SetServer("localhost",9312)
    cl.Open()

    q := "DROP TABLE testrt"
    res,err := cl.Sphinxql(q)
    if err != nil {
        fmt.Println("create error:",err)
    }

    q = "CREATE TABLE testrt(/*id int,*/title text,counter int)"
    fmt.Println("create query is:",q)
    res,err = cl.Sphinxql(q)
    if err != nil {
        fmt.Println("create error:",err)
    }
    fmt.Println(res)

    res,err = cl.Sphinxql(`replace into testrt values(1,'my subject','my content',15)`)
    fmt.Println(res,err)
    res,err = cl.Sphinxql(`replace into testrt values(2,'another subject','more content',err = cl.Sphinxql(`replace into testrt values(5,'again subject','one more content',10)`)
    fmt.Println(res,err)
    res2,err2 := cl.Query("subject","testrt")
    fmt.Println(res2,err2)

返回:

[Query OK,0 rows affected]
[Query OK,1 rows affected] <nil>
[Query OK,1 rows affected] <nil>
Status: ok
Query time: 0s
Total: 3
Total found: 3
Schema:
    Fields:
        title
        content
    Attributes:
        counter: int
        title: string
        content: string
Matches:
    Doc: 1,Weight: 1,attrs: [15 my subject my content]
    Doc: 2,attrs: [15 another subject more content]
    Doc: 5,attrs: [10 again subject one more content]
Word stats:
    'subject' (Docs:3,Hits:3)
 <nil>

区别在于:

8c8
<         fmt.Println("create error:",q)
---
>         fmt.Println("create error:",err)
11c11
<     q = "CREATE TABLE testrt(id int,counter int)"
---
>     q = "CREATE TABLE testrt(/*id int,counter int)"
15c15
<         fmt.Println("create error:",err)
16a17
>     fmt.Println(res)
26d26
<

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?