如何在 SOLR 中获取每个文档的总字数?
How to get the total word count per document in SOLR?
我想从已在 Solr 中编制索引的文本文档中检索一些摘要统计信息。特别是每个文档的字数。
例如,我索引了以下三个文档:
{
"id":"1",
"text":["This is the text in document 1"]},
{
"id":"2",
"text":["some text in document 2"]},
{
"id":"3",
"text":["and document 3"]}
我想获得每个文档的总字数:
"1",7,
"2",5,
"3",3,
我可以使用什么查询来获得这样的结果?
我是 Solr 的新手,我知道我可以使用分面来获取所有文档中单个单词的数量,方法如下:
http://localhost:8983/solr/corename/select?q=*&facet=true&facet.field=text&facet.mincount=1
但是我不清楚如何获得每个文档的总字数。
感谢您的帮助!
如果您对 ID 进行分面搜索,对文本进行内部分面搜索,则内部分面计数将给出该文档中具有该 ID 的单词数。但文本字段类型必须是 text_general 或等效的东西(标记化)。
如果您只想计算每个文档 ID 的“不同”字数,实际上要容易得多:
{
"query": "*:*",
"facet": {
"document": {
"type": "terms",
"field": "id",
"facet": {
"wordCount": "unique(message)"
}
}
}
}
每个文档给出不同的字数。以下给出了每个文档的所有单词和所有计数,但您可以将它们相加以获得总数(这也是一个昂贵的调用)
{
"query": "*:*",
"facet": {
"document": {
"type": "terms",
"field": "id",
"facet": {
"wordCount": {
"type": "terms",
"field": "message",
"limit": -1
}
}
}
}
}
@MatsLindth 的评论也值得考虑。 Solr 和您可能不同意什么是“词”。 Tokenizer 在一定程度上是可配置的,但根据您的需要,它可能不是很容易。
我想从已在 Solr 中编制索引的文本文档中检索一些摘要统计信息。特别是每个文档的字数。
例如,我索引了以下三个文档:
{
"id":"1",
"text":["This is the text in document 1"]},
{
"id":"2",
"text":["some text in document 2"]},
{
"id":"3",
"text":["and document 3"]}
我想获得每个文档的总字数:
"1",7,
"2",5,
"3",3,
我可以使用什么查询来获得这样的结果?
我是 Solr 的新手,我知道我可以使用分面来获取所有文档中单个单词的数量,方法如下:
http://localhost:8983/solr/corename/select?q=*&facet=true&facet.field=text&facet.mincount=1
但是我不清楚如何获得每个文档的总字数。
感谢您的帮助!
如果您对 ID 进行分面搜索,对文本进行内部分面搜索,则内部分面计数将给出该文档中具有该 ID 的单词数。但文本字段类型必须是 text_general 或等效的东西(标记化)。
如果您只想计算每个文档 ID 的“不同”字数,实际上要容易得多:
{
"query": "*:*",
"facet": {
"document": {
"type": "terms",
"field": "id",
"facet": {
"wordCount": "unique(message)"
}
}
}
}
每个文档给出不同的字数。以下给出了每个文档的所有单词和所有计数,但您可以将它们相加以获得总数(这也是一个昂贵的调用)
{
"query": "*:*",
"facet": {
"document": {
"type": "terms",
"field": "id",
"facet": {
"wordCount": {
"type": "terms",
"field": "message",
"limit": -1
}
}
}
}
}
@MatsLindth 的评论也值得考虑。 Solr 和您可能不同意什么是“词”。 Tokenizer 在一定程度上是可配置的,但根据您的需要,它可能不是很容易。