小编use*_*538的帖子

python whoosh 索引大文件的时间太长

我有一个包含约 900 万行的 CSV 文件。我希望能够快速从该文件中搜索一行。我决定使用 python whoosh 来索引这些数据,然后搜索它,如下所示。

schema = Schema(content=TEXT(stored=True, analyzer=RegexTokenizer() | LowercaseFilter() | CharsetFilter(accent_map)))

if not os.path.exists("index"):
    os.mkdir("index")
ix = create_in("index", schema)

ix = open_dir("index")

writer = ix.writer()

with open(file_path, 'r', encoding='utf-8') as file:
    for line in file:
        writer.add_document(content=line)

writer.commit()
Run Code Online (Sandbox Code Playgroud)

我不确定这是否是索引数据的正确/最快方法。更改架构是否会使索引更快?如果不是,使用 whoosh 或其他索引库的一般想法是否适合像这样的大文件?

好消息是索引只会做一次,所以我愿意等待这是否会提供快速的搜索时间。我在全文搜索方面没有经验。有人会知道,通过我的设置,索引需要多长时间?

这是我的 csv 示例:

ID,TYPE,TEXT,ID2
1058895,1,Be,1067806
1058895,2,Hosl,101938
1058895,3,370,None
1058895,4,Tnwg,10582
Run Code Online (Sandbox Code Playgroud)

python csv indexing full-text-search whoosh

2
推荐指数
1
解决办法
1455
查看次数

如何使用 Directus 流在创建时将值从一列复制到另一列

我正在directus创建记录,其中一列是包含负数的浮点数。

创建记录时,我想自动将此列的绝对值复制到同一集合中的另一列。

示例:创建具有以下值的列的记录后-45.20,我想创建一个自动流程,将45.20单元格的一部分复制到刚刚插入的同一记录中的另一列。

这可以用flowsin吗directus

postgresql content-management-system directus directus-flows

2
推荐指数
1
解决办法
4097
查看次数

jquery onclick 不适用于 .load() 函数中的元素

我在一个单独的文件中有一个 PHP 代码片段,我使用 jquery 将其加载到 javascript 文件中:

let signUpMode = $(".modal");
  signUpMode.load("login_signup_popup.php");
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为我可以在屏幕上显示它。但是,此代码片段包含一个按钮,我想在加载该代码片段的同一个 javascript 文件中单击该按钮。简单的事情,比如:

$(".signupbtn").on("click", function(){
    console.log("signed Up");
  });
Run Code Online (Sandbox Code Playgroud)

然而,这个点击不起作用。signupbtn是代码片段中的 div 元素。不知怎的,我错过了一个额外的步骤,因为 jquery 似乎无法识别代码片段中的元素。

javascript php jquery jquery-load

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

Django REST 框架:如何使用 get_queryset() 响应有用的错误消息

我有一个 Django 模型,我想通过 Django Rest 框架显示它。我正在通过 来显示模型中的所有对象get_queryset()。不过,我还有一些query_params可以过滤掉某些对象的工具。这是我的主要代码,运行良好:

class PlanView(generics.ListAPIView):
    """
    API endpoint which allows prices to be viewed or edited
    """

    serializer_class = PlanSerializer
    permission_classes = (IsAuthenticatedOrReadOnly,)

    # override method
    def get_queryset(self):
        //get all objects in Plan model
        queryset = Plan.objects.all()

        // possible query parameters to be read from url
        size = self.request.query_params.get("size", None)
        price = self.request.query_params.get("price", None)

        if size is not None:
            if size == "large":
                queryset = queryset.filter(Large=True)
            elif size == "small":
                queryset = …
Run Code Online (Sandbox Code Playgroud)

api django rest http-status-codes django-rest-framework

1
推荐指数
2
解决办法
1856
查看次数

Java无法调用addAll()将子类类型的arraylist添加到类型<?扩展baseClass>

我有两个类,一个超类和一个继承该超类的子类。我想将两个数组列表合并为一个。这两个数组列表具有不同的类型。一个是超类列表,另一个是子类。

这是我的三个列表:

public ArrayList<subClass> list1;
public ArrayList<superClass> list2;

public ArrayList<? extends superClass> combined; // so this accepts all subclasses as well
Run Code Online (Sandbox Code Playgroud)

然后,我试图完成以下任务:

combined.addAll(list1);
combined.addAll(list2);
Run Code Online (Sandbox Code Playgroud)

编译器说:

addAll in arrayList cannot be applied to list1
addAll in arrayList cannot be applied to list2
Run Code Online (Sandbox Code Playgroud)

但是:combined = list1;没有错误。使用等号时,我无法将两个列表合并。

我该如何实现?

java inheritance arraylist

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

python if else comprehension有两个列表

我有这个代码:

a = []
b = []
for row in range(10):
    if x[row] is True:
        a += list_features[row]
    else:
        b += list_features[row]
Run Code Online (Sandbox Code Playgroud)

list_features[row]一维清单在哪里?我想在列表理解中这样做我知道下面的代码会起作用:

a+= [list_features[row] for row in (10) if x[row] is True]
b+= [list_features[row] for row in (10) if x[row] is False]
Run Code Online (Sandbox Code Playgroud)

如何只用一行理解就可以做到这一点?

python list-comprehension

0
推荐指数
1
解决办法
323
查看次数

C ++ shared_ptr不提供调用运算符

我有一个类Foo,其中包含一个shared_ptrclass Foo2作为成员变量。我这样宣告以上观点:

class Foo{
public:
    Foo();

private:
    shared_ptr<Foo2> f2;

};
Run Code Online (Sandbox Code Playgroud)

首先,我可以做以上吗?即不初始化shared_ptr?

Foo我的默认构造函数中,如下所示初始化了shared_ptr变量:

Foo::Foo(){
    //create and calculate parameters a, b and c
    f2(new Foo2(a, b, c));
}
Run Code Online (Sandbox Code Playgroud)

由于Foo2的唯一构造函数具有3个参数。但是,这显示了一个错误:

Type 'shared_ptr<Foo2>' does not provide a call operator

这不是创建类的共享指针实例的方法吗?

c++ constructor smart-pointers shared-ptr

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