小编bee*_*jay的帖子

如何在多个内核之间共享Solr fieldType?

是否可以在多个内核之间共享fieldType定义的Solr schema.xml

我在Solr中有许多内核,并发现自己重新定义了fieldType仅基于内置过滤器和标记器的内核.例如

<fieldType name="exact" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
        <filter class="solr.LowerCaseFilterFactory"/> 
        <tokenizer class="solr.KeywordTokenizerFactory"/>
    </analyzer>
    <analyzer type="query">
        <filter class="solr.LowerCaseFilterFactory"/>
        <tokenizer class="solr.KeywordTokenizerFactory"/>
    </analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud)

我知道我可以编写自己的Field类并在内核之间共享它,但是当自定义代码只配置标准过滤器时,创建对自定义代码的依赖似乎很愚蠢.有没有更好的办法?

请注意,与其他一些示例(配置停用词和字符转换等)相比,上面的示例很简单.

solr

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

为什么我的JVM堆大小从2gig飙升到8 gigs?

堆内存大小在2gig和~8gig之间大约每分钟一次(参见图片).

相关细节:

  • 高流量站点
  • 很多物理记忆
  • Redhat 5.5
  • Java 1.6.0_07
  • Glassfish 2.2.1(是的,我知道它已经老了.不,我们无法升级.是的,我知道使用它作为生产应用服务器是不寻常的).
  • -XX:MaxPermSize = 192m -XX:+ AggressiveHeap -Xms14336m -Xmx14336m

我对内存调整没有什么经验,但似乎MaxPermSize与Xms和Xmx完全不同.或者这是正常的吗?

jConsole堆thrashing

java heap jvm glassfish

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

我想在Solr中的DataImporthandler中使用多个数据源,并在查询父实体中的数据库后传递子实体中的URL值

我想在Solr中的DataImporthandler中使用多个数据源,并在查询父实体中的数据库后传递子实体中的URL值.这是我的rss-data-config文件:

<dataConfig>
    <dataSource type="JdbcDataSource" name="ds-db" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/HCDACoreDB" 
                            user="root" password="CDA@318"/>
    <dataSource type="URLDataSource" name="ds-url"/>
    <document>
        <entity name="feeds" query="select f.feedurl, f.feedsource, c.categoryname from feeds f, category c where f.feedcategory = c.categoryid">

        <field column="feedurl" name="url" dataSource="ds-db"/>
        <field column="categoryname" name="category" dataSource="ds-db"/>

        <field column="feedsource" name="source" dataSource="ds-db"/>

        <entity name="rss"
                transformer="HTMLStripTransformer" 
                forEach="/RDF/channel | /RDF/item" 
                processor="XPathEntityProcessor" 
                url="${dataimporter.functions.encodeUrl(feeds.feedurl)}" > 

            <field column="source-link" dataSource="ds-url" xpath="/rss/channel/link" commonField="true" />
            <field column="Source-desc" dataSource="ds-url" xpath="/rss/channel/description" commonField="true" />
            <field column="title" dataSource="ds-url" xpath="/rss/channel/item/title" />
            <field column="link" dataSource="ds-url" xpath="/rss/channel/item/link" />
            <field column="description" dataSource="ds-url" xpath="/rss/channel/item/description" stripHTML="true"/>
            <field column="pubDate" dataSource="ds-url" xpath="/rss/channel/item/pubDate" …
Run Code Online (Sandbox Code Playgroud)

solr

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

hibernate验证器的注释,用于将来至少24小时的日期

我知道存在注释@Future.

如果我使用此注释注释字段

@Future
private Date date;
Run Code Online (Sandbox Code Playgroud)

日期必须在将来意味着在当前时刻之后.

现在我需要在当前时刻之后至少24小时验证该日期.
我该怎么做?

java validation date spring-mvc hibernate-validator

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

Python字符串编码和==

我在使用python中的字符串时遇到了一些问题,而==我认为它们应该是这样,而且我认为它与编码方式有关.基本上,我解析了存储在zip存档中的一些以逗号分隔的值(特别是GTFS提要,对于那些好奇的人).

我在python中使用ZipFile模块打开zip存档的某些文件,然后将其中的文本与一些已知值进行比较.这是一个示例文件:

agency_id,agency_name,agency_url,agency_phone,agency_timezone,agency_lang
ARLC,Arlington Transit,http://www.arlingtontransit.com,703-228-7433,America/New_York,en
Run Code Online (Sandbox Code Playgroud)

我正在使用的代码是尝试在文本的第一行中识别字符串"agency_id"的位置,以便我可以在任何后续行中使用相应的值.这是代码的片段:

zipped_feed = ZipFile(feed_name, "r")
agency_file = zipped_feed.open("agency.txt", "r")

line_num = 0
agencyline = agency_file.readline()
while agencyline:
    if line_num == 0:
        # this is the header, all we care about is the agency_id
        lineparts = agencyline.split(",")
        position = -1
        counter = 0
        for part in lineparts:
            part = part.strip()
            if part == "agency_id":
                position = counter              
        counter += 1
        line_num += 1
        agencyline = agency_file.readline()
    else:
        .....
Run Code Online (Sandbox Code Playgroud)

此代码适用于某些zip存档,但不适用于其他zip存档.我做了一些研究,并尝试打印repr(部分),我得到'\ xef\xbb\xbfagency_id'而不是'agency_id'.有谁知道这里发生了什么以及我如何解决它?感谢您的帮助!

python string utf-8

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

Python截断整数数组中的数字

我正在教自己Python并遇到一个奇怪的问题.我要做的是将一个列表传递给一个函数,并让函数返回一个列表,其中元素是它周围数字的总和,但我认为会产生一些奇怪的结果,所以我做了一个调试版本的仍然表现出行为的代码如下:

当我创建一个整数数组,并将其传递给一个函数,然后使用for循环打印列表的各个值时,每个int中第一个数字后面的数字将被截断.

例如,以下输入和输出:

Please enter a number: 101
Please enter a number: 202
Please enter a number: 303
Please enter a number: .
1
2
3
Run Code Online (Sandbox Code Playgroud)

无论输入是否为10,101或13453,都会发生这种情况 - 发生相同的行为.

我知道我可能错过了一些简单的东西,但是为了我,没有任何谷歌搜索让我解决了这个问题.下面是我用来执行此操作的代码.有趣的是:当在任何点打印for循环之外的整个列表时,它返回完整且正确的列表(即['101','202','303'])

谢谢!

temp = list()

def sum(list):
    print list
    for i in range(1, len(list)+1):
        print i
    return temp

L = list()
while True:
    input = raw_input("Please enter a number: ");
    if input.strip() == ".":
        break
    L.append(input);

print L

L2 = sum(L)
print L2
Run Code Online (Sandbox Code Playgroud)

python function list

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

两种不同的递归方式

我用两种不同的方式计算斐波那那排.为什么fib1的执行时间比fib2长得多?

public class RecursionTest {

    @Test
    public void fib1() {
        long t = System.currentTimeMillis();

        long fib = fib1(47);

        System.out.println(fib + "  Completed fib1 in:" + (System.currentTimeMillis() - t));

        t = System.currentTimeMillis();

        fib = fib2(47);

        System.out.println(fib + "  Completed fib2 in:" + (System.currentTimeMillis() - t));

    }


    long fib1(int n) {
        if (n == 0 || n == 1) {
            return n;
        } else {
            return fib1(n - 1) + fib1(n - 2);
        }
    }


    long fib2(int n) {
        return n == …
Run Code Online (Sandbox Code Playgroud)

java algorithm recursion

0
推荐指数
2
解决办法
331
查看次数

将&str转换为OsStr的正确方法是什么?

我正在使用防锈保险丝,它可以作为安装选项&[&std::ffi::os_str::OsStr].看来我应该拆分我的传入的逗号分隔选项字符串,我这样做:

mod fuse {
    use std::ffi::OsStr;

    pub fn mount(options: &[&OsStr]) {}
}

fn example(optstr: &str) {
    let mut options: &[&str] = &[];
    if optstr != "" {
        options = optstr.split(",").collect::<Vec<_>>().as_slice();
    }
    fuse::mount(options)
}
Run Code Online (Sandbox Code Playgroud)

这给出了以下错误:

error[E0308]: mismatched types
  --> src/main.rs:12:17
   |
12 |     fuse::mount(options)
   |                 ^^^^^^^ expected struct `std::ffi::OsStr`, found str
   |
   = note: expected type `&[&std::ffi::OsStr]`
              found type `&[&str]`
Run Code Online (Sandbox Code Playgroud)

我的印象是所有人&str都是OsStrs,但我是Rust的新手,所以我猜这是错的.

rust

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