We are trying to upgrade our solr clusters and are running into
performance issues when moving to the newer version. We are finding
that queries are taking more than double the amount of time to return
when provided with the same query and both clusters are indexed with
the same documents. The queries that we run are using booting as well
as groups and ngroups. Our original clusters were solr 4.10.4 and we
experienced a similar degradation going from 4.10.4 to 6.5.1 and were
able to get around that by splitting the work from one 30 server
cluster to two clusters one with 30 servers and a second with 35
clusters. It is not acceptable for us to more than double our clusters
again. I have gone through the documentation and made changes to the
schema and solr config as needed to upgrade but am still not sure why
we are experiencing such a dramatic degradation in performance.
We are indexing about 550000 new documents daily and updating around
550000 documents daily as well.
The clusters are configured as follows with schema and configs and a
sample query that I am running against both cluster examples.
Old cluster:
Solr 6.5.1
31 GB heap
OpenJDK 64-Bit Server VM - 1.8.0_275-8u275-b01-1~deb9u1-b01
Shards -6 Replicas -5
/18643418 docs/
/Avg size/doc: 2.6Kb/
http://localhost:8983/solr/content/select?indent=on&q=*:*&wt=json
{
"*responseHeader*":{
"*zkConnected*":true,
"*status*":0,
"*QTime*":2665,
"*params*":{
"*q*":"*:*",
"*indent*":"on",
"*wt*":"json",
"*_*":"1618866411985"}},
"*grouped*":{
"*fingerprint*":{
"*matches*":18728759,
"*ngroups*":14295515,
"*groups*":[{
…
New cluster: - this query takes about *10* times as long.
Solr 8.7.0
31 GB heap
OpenJDK 64-Bit Server VM - 11.0.9.1+1-post-Debian-1deb10u2
Shards -5 Replicas -5
/18643418 docs/
/Avg size/doc: 2.6Kb/
http://localhost:8983/solr/content/select?indent=on&q=*:*&wt=json
{
"*responseHeader*":{
"*zkConnected*":true,
"*status*":0,
"*QTime*":27876,
"*params*":{
"*q*":"*:*",
"*wt*":"json",
"*_*":"1618866396857"}},
"*grouped*":{
"*fingerprint*":{
"*matches*":18730577,
"*ngroups*":13988977,
…
Solr 6.5.1
solr 6.5.1 schema.xml
<?xml version="1.0" encoding="UTF-8" ?>
<schema name="articles" version="1.5">
<uniqueKey>id</uniqueKey>
<defaultSearchField>text</defaultSearchField>
<solrQueryParser defaultOperator="AND" />
<fieldType name="string" class="solr.StrField"
sortMissingLast="true" omitNorms="true"/>
<fieldType name="boolean" class="solr.BoolField"
sortMissingLast="true" omitNorms="true"/>
<fieldType name="int" class="solr.TrieIntField" precisionStep="0"
positionIncrementGap="0"/>
<fieldType name="float" class="solr.TrieFloatField"
precisionStep="0" positionIncrementGap="0"/>
<fieldType name="long" class="solr.TrieLongField"
precisionStep="0" positionIncrementGap="0"/>
<fieldType name="double" class="solr.TrieDoubleField"
precisionStep="0" positionIncrementGap="0"/>
<fieldType name="date" class="solr.TrieDateField" omitNorms="true"
precisionStep="6" positionIncrementGap="0"/>
<!-- lowercases the entire field value, keeping it as a single token. -->
<fieldType name="lowercase" class="solr.TextField"
positionIncrementGap="100" omitNorms="true">
<analyzer>
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
</fieldType>
<!-- Exact text, without word stemming -->
<fieldType name="exact_text" class="solr.TextField"
positionIncrementGap="100" omitNorms="true">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterGraphFilterFactory"
generateWordParts="1" generateNumberParts="0"
catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnNumerics="0"
preserveOriginal="0" splitOnCaseChange="0" types="content-types.txt" />
<filter class="solr.FlattenGraphFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory"
synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.WordDelimiterGraphFilterFactory"
generateWordParts="1" generateNumberParts="0"
catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnNumerics="0"
preserveOriginal="0" splitOnCaseChange="0" types="content-types.txt" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<!-- Exact text, case-sensitive, without word stemming -->
<fieldType name="exact_text_and_case" class="solr.TextField"
positionIncrementGap="100" omitNorms="true">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterGraphFilterFactory"
generateWordParts="1" generateNumberParts="0"
catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnNumerics="0"
preserveOriginal="0" splitOnCaseChange="0" types="content-types.txt" />
<filter class="solr.FlattenGraphFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory"
synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.WordDelimiterGraphFilterFactory"
generateWordParts="1" generateNumberParts="0"
catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnNumerics="0"
preserveOriginal="0" splitOnCaseChange="0" types="content-types.txt" />
</analyzer>
</fieldType>
<!-- Exact text (without word stemming) but normalized. Used for the
headline field -->
<fieldType name="exact_text_normalized" class="solr.TextField"
positionIncrementGap="100" omitNorms="false">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterGraphFilterFactory"
generateWordParts="1" generateNumberParts="0"
catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnNumerics="0"
preserveOriginal="0" splitOnCaseChange="0" types="content-types.txt" />
<filter class="solr.FlattenGraphFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory"
synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.WordDelimiterGraphFilterFactory"
generateWordParts="1" generateNumberParts="0"
catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnNumerics="0"
preserveOriginal="0" splitOnCaseChange="0" types="content-types.txt" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<!-- The default (stemmed) text field for general queries -->
<fieldType name="text" class="solr.TextField"
positionIncrementGap="100" omitNorms="true">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterGraphFilterFactory"
generateWordParts="1" generateNumberParts="0"
catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnNumerics="0"
preserveOriginal="0" splitOnCaseChange="0" types="content-types.txt" />
<filter class="solr.FlattenGraphFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory"
preserveOriginal="true"/>
<filter class="solr.SnowballPorterFilterFactory"
language="English" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory"
synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.WordDelimiterGraphFilterFactory"
generateWordParts="1" generateNumberParts="0"
catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnNumerics="0"
preserveOriginal="0" splitOnCaseChange="0" types="content-types.txt" />
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory"
preserveOriginal="true"/>
<filter class="solr.SnowballPorterFilterFactory"
language="English" />
</analyzer>
</fieldType>
<!-- General -->
<field name="id" type="string" indexed="true" stored="true"
multiValued="false" required="true" docValues="true"/>
<field name="django_ct" type="string" indexed="true" stored="true"
multiValued="false" docValues="true" />
<field name="django_id" type="string" indexed="true" stored="true"
multiValued="false" docValues="true" />
<field name="lang" type="string" indexed="true" stored="true"
multiValued="false" docValues="true" />
<!-- Content -->
<field name="headline" type="exact_text_normalized" indexed="true"
stored="true" multiValued="false" />
<!-- <field name="intro" type="text" indexed="true" stored="false"
multiValued="false" /> -->
<field name="intro" type="exact_text_normalized" indexed="true"
stored="false" multiValued="false" />
<field name="text" type="text" indexed="true" stored="false"
multiValued="false" />
<field name="content" type="text" indexed="false" stored="true"
multiValued="false" />
<field name="content_fulltext" type="text" stored="false"
indexed="true" multiValued="false" />
<field name="content_exact" type="exact_text" stored="false"
indexed="true" multiValued="false" /> <!-- generated from `text` -->
<field name="content_exact_case" type="exact_text_and_case"
stored="false" indexed="true" multiValued="false" /> <!-- generated
from `text` -->
<!-- Source Data -->
<field name="published_at" type="date" indexed="true" stored="true"
multiValued="false" docValues="true" />
<field name="publication_type" type="string" indexed="true"
stored="true" multiValued="false" docValues="true" />
<field name="feed_id" type="long" indexed="true" stored="true"
multiValued="true" docValues="true" />
<field name="subscription" type="int" indexed="true"
stored="false" docValues="true" />
<field name="priority_fetch" type="boolean" indexed="true"
stored="true" />
<!-- Ranking -->
<field name="priority" type="float" indexed="true" stored="false"
multiValued="false" docValues="true" />
<field name="site_rank" type="long" indexed="true" stored="false"
multiValued="false" docValues="true" />
<field name="combined_priority_weight" type="float" indexed="true"
stored="true" multiValued="false" docValues="true" />
<field name="valid_firms" type="long" indexed="true"
stored="false" multiValued="true" docValues="true" />
<!-- Pre-Tagging of Saved Searches -->
<field name="ss" type="long" indexed="true" stored="false"
multiValued="true" docValues="true" />
<field name="tags" type="string" indexed="true" stored="true"
multiValued="true" docValues="true" />
<field name="last_taggable_change" type="date" indexed="true"
stored="true" multiValued="false" docValues="true" />
<field name="tagged_topics" type="long" indexed="true"
stored="true" multiValued="true" docValues="true" />
<field name="tagged_about_sources" type="long" indexed="true"
stored="true" multiValued="true" docValues="true" />
<field name="tagged_created_sources" type="long" indexed="true"
stored="true" multiValued="true" docValues="true" />
<!-- Event Specific -->
<field name="end_date" type="date" indexed="true" stored="true"
multiValued="false" docValues="true" />
<field name="start_date" type="date" indexed="true" stored="true"
multiValued="false" docValues="true" />
<!-- Twitter specific -->
<field name="tweeter" type="lowercase" indexed="true" stored="true"
multiValued="false" />
<!-- Functional -->
<field name="fingerprint" type="string" stored="false" indexed="true"
multiValued="false" docValues="true" />
<field name="_version_" type="long" indexed="true" stored="true"
docValues="true" />
<!-- Copy text into content_exact -->
<copyField source="text" dest="content_exact" />
<copyField source="text" dest="content_exact_case" />
<!-- Insights -->
<field name="has_signal" type="int" indexed="true" stored="true"
multiValued="false"
docValues="true" />
<!-- Industry Entities -->
<field name="industry_tags" type="long" indexed="true" stored="true"
multiValued="true" docValues="true" />
</schema>
solr 6.5.1 solrconfig.xml
<?xml version="1.0" encoding="UTF-8" ?>
<config>
<luceneMatchVersion>6.5.1</luceneMatchVersion>
<lib dir="../../../dist/" regex="solr-cell-\d.*\.jar" />
<lib dir="../../../contrib/extraction/lib" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-clustering-\d.*\.jar" />
<lib dir="../../../contrib/clustering/lib/" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-langid-\d.*\.jar" />
<lib dir="../../../contrib/langid/lib/" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-velocity-\d.*\.jar" />
<lib dir="../../../contrib/velocity/lib" regex=".*\.jar" />
<lib dir="/total/crap/dir/ignored" />
<dataDir>${solr.data.dir:}</dataDir>
<schemaFactory class="ClassicIndexSchemaFactory"/>
<directoryFactory name="DirectoryFactory"
class="${solr.directoryFactory:solr.NRTCachingDirectoryFactory}"/>
<indexConfig>
</indexConfig>
<jmx />
<updateHandler class="solr.DirectUpdateHandler2">
<autoCommit>
<maxTime>600000</maxTime>
<openSearcher>false</openSearcher>
</autoCommit>
<autoSoftCommit>
<maxTime>120000</maxTime>
</autoSoftCommit>
<updateLog>
<str name="dir">${solr.data.dir:}</str>
</updateLog>
</updateHandler>
<query>
<maxBooleanClauses>4096</maxBooleanClauses>
<filterCache class="solr.LRUCache"
size="3600"
initialSize="128"
autowarmCount="128"/>
<queryResultCache class="solr.LRUCache"
size="1024"
initialSize="64"
autowarmCount="64"/>
<documentCache class="solr.LRUCache"
size="4096"
initialSize="128"
autowarmCount="0"/>
<enableLazyFieldLoading>true</enableLazyFieldLoading>
<queryResultWindowSize>20</queryResultWindowSize>
<queryResultMaxDocsCached>200</queryResultMaxDocsCached>
<listener event="newSearcher" class="solr.QuerySenderListener">
<arr name="queries">
</arr>
</listener>
<listener event="firstSearcher" class="solr.QuerySenderListener">
<arr name="queries">
<lst>
<str name="q">static firstSearcher warming in
solrconfig.xml</str>
</lst>
</arr>
</listener>
<useColdSearcher>true</useColdSearcher>
<maxWarmingSearchers>4</maxWarmingSearchers>
</query>
<requestDispatcher handleSelect="false" >
<requestParsers enableRemoteStreaming="false"
multipartUploadLimitInKB="2048000" />
<httpCaching never304="true" />
</requestDispatcher>
<requestHandler name="/select" class="solr.SearchHandler">
<lst name="defaults">
<str name="echoParams">explicit</str>
<int name="rows">10</int>
<str name="df">text</str>
<str name="group">true</str>
<str name="group.field">fingerprint</str>
<int name="group.limit">6</int>
<str name="group.ngroups">true</str>
<int name="f.feed_id.facet.mincount">1</int>
<int name="f.linked_searches.facet.mincount">1</int>
<int name="timeAllowed">120000</int>
</lst>
</requestHandler>
<requestHandler name="/get" class="solr.RealTimeGetHandler">
<lst name="defaults">
<str name="omitHeader">true</str>
<str name="wt">json</str>
<str name="indent">true</str>
</lst>
</requestHandler>
<requestHandler name="/export" class="solr.SearchHandler">
<lst name="invariants">
<str name="rq">{!xport}</str>
<str name="wt">xsort</str>
<str name="distrib">false</str>
</lst>
<arr name="components">
<str>query</str>
</arr>
</requestHandler>
<requestHandler name="/update" class="solr.UpdateRequestHandler">
</requestHandler>
<requestHandler name="/update/extract"
startup="lazy"
class="solr.extraction.ExtractingRequestHandler" >
<lst name="defaults">
<str name="lowernames">true</str>
<str name="uprefix">ignored_</str>
<!-- capture link hrefs but ignore div attributes -->
<str name="captureAttr">true</str>
<str name="fmap.a">links</str>
<str name="fmap.div">ignored_</str>
</lst>
</requestHandler>
<requestHandler name="/analysis/field"
startup="lazy"
class="solr.FieldAnalysisRequestHandler" />
<requestHandler name="/analysis/document"
class="solr.DocumentAnalysisRequestHandler"
startup="lazy" />
<requestHandler name="/admin/ping" class="solr.PingRequestHandler">
<lst name="invariants">
<str name="q">solrpingquery</str>
</lst>
<lst name="defaults">
<str name="echoParams">all</str>
</lst>
</requestHandler>
<requestHandler name="/debug/dump" class="solr.DumpRequestHandler" >
<lst name="defaults">
<str name="echoParams">explicit</str>
<str name="echoHandler">true</str>
</lst>
</requestHandler>
<requestHandler name="/replication" class="solr.ReplicationHandler"
startup="lazy" />
<searchComponent name="spellcheck" class="solr.SpellCheckComponent">
<str name="queryAnalyzerFieldType">textSpell</str>
<lst name="spellchecker">
<str name="name">default</str>
<str name="field">name</str>
<str name="classname">solr.DirectSolrSpellChecker</str>
<str name="distanceMeasure">internal</str>
<float name="accuracy">0.5</float>
<int name="maxEdits">2</int>
<int name="minPrefix">1</int>
<int name="maxInspections">5</int>
<int name="minQueryLength">4</int>
<float name="maxQueryFrequency">0.01</float>
</lst>
<lst name="spellchecker">
<str name="name">wordbreak</str>
<str name="classname">solr.WordBreakSolrSpellChecker</str>
<str name="field">name</str>
<str name="combineWords">true</str>
<str name="breakWords">true</str>
<int name="maxChanges">10</int>
</lst>
</searchComponent>
<searchComponent name="tvComponent" class="solr.TermVectorComponent"/>
<searchComponent name="clustering"
enable="${solr.clustering.enabled:false}"
class="solr.clustering.ClusteringComponent" >
<lst name="engine">
<str name="name">default</str>
<str
name="carrot.algorithm">org.carrot2.clustering.lingo.LingoClusteringAlgorithm</str>
<str name="LingoClusteringAlgorithm.desiredClusterCountBase">20</str>
<str name="carrot.lexicalResourcesDir">clustering/carrot2</str>
<str name="MultilingualClustering.defaultLanguage">ENGLISH</str>
</lst>
<lst name="engine">
<str name="name">stc</str>
<str
name="carrot.algorithm">org.carrot2.clustering.stc.STCClusteringAlgorithm</str>
</lst>
</searchComponent>
<requestHandler name="/clustering"
startup="lazy"
enable="${solr.clustering.enabled:false}"
class="solr.SearchHandler">
<lst name="defaults">
<bool name="clustering">true</bool>
<str name="clustering.engine">default</str>
<bool name="clustering.results">true</bool>
<str name="carrot.title">name</str>
<str name="carrot.url">id</str>
<str name="carrot.snippet">features</str>
<bool name="carrot.produceSummary">true</bool>
<bool name="carrot.outputSubClusters">false</bool>
<str name="defType">edismax</str>
<str name="qf">
text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0 manu^1.1 cat^1.4
</str>
<str name="q.alt">*:*</str>
<str name="rows">10</str>
<str name="fl">*,score</str>
</lst>
<arr name="last-components">
<str>clustering</str>
</arr>
</requestHandler>
<searchComponent name="terms" class="solr.TermsComponent"/>
<searchComponent name="elevator" class="solr.QueryElevationComponent" >
<str name="queryFieldType">string</str>
<str name="config-file">elevate.xml</str>
</searchComponent>
<searchComponent class="solr.HighlightComponent" name="highlight">
<highlighting>
<fragmenter name="gap"
default="true"
class="solr.highlight.GapFragmenter">
<lst name="defaults">
<int name="hl.fragsize">100</int>
</lst>
</fragmenter>
<fragmenter name="regex"
class="solr.highlight.RegexFragmenter">
<lst name="defaults">
<int name="hl.fragsize">70</int>
<float name="hl.regex.slop">0.5</float>
<str name="hl.regex.pattern">[-\w ,/\n\"']{20,200}</str>
</lst>
</fragmenter>
<formatter name="html"
default="true"
class="solr.highlight.HtmlFormatter">
<lst name="defaults">
<str name="hl.simple.pre"><![CDATA[<em>]]></str>
<str name="hl.simple.post"><![CDATA[</em>]]></str>
</lst>
</formatter>
<encoder name="html"
class="solr.highlight.HtmlEncoder" />
<fragListBuilder name="simple"
class="solr.highlight.SimpleFragListBuilder"/>
<fragListBuilder name="single"
class="solr.highlight.SingleFragListBuilder"/>
<fragListBuilder name="weighted"
default="true"
class="solr.highlight.WeightedFragListBuilder"/>
<fragmentsBuilder name="default"
default="true"
class="solr.highlight.ScoreOrderFragmentsBuilder">
</fragmentsBuilder>
<fragmentsBuilder name="colored"
class="solr.highlight.ScoreOrderFragmentsBuilder">
<lst name="defaults">
<str name="hl.tag.pre"><![CDATA[
<b style="background:yellow">,<b
style="background:lawgreen">,
<b style="background:aquamarine">,<b
style="background:magenta">,
<b style="background:palegreen">,<b
style="background:coral">,
<b style="background:wheat">,<b style="background:khaki">,
<b style="background:lime">,<b
style="background:deepskyblue">]]></str>
<str name="hl.tag.post"><![CDATA[</b>]]></str>
</lst>
</fragmentsBuilder>
<boundaryScanner name="default"
default="true"
class="solr.highlight.SimpleBoundaryScanner">
<lst name="defaults">
<str name="hl.bs.maxScan">10</str>
<str name="hl.bs.chars">.,!? 	 </str>
</lst>
</boundaryScanner>
<boundaryScanner name="breakIterator"
class="solr.highlight.BreakIteratorBoundaryScanner">
<lst name="defaults">
<str name="hl.bs.type">WORD</str>
<str name="hl.bs.language">en</str>
<str name="hl.bs.country">US</str>
</lst>
</boundaryScanner>
</highlighting>
</searchComponent>
<queryResponseWriter name="json" class="solr.JSONResponseWriter">
<str name="content-type">text/plain; charset=UTF-8</str>
</queryResponseWriter>
<queryResponseWriter name="velocity"
class="solr.VelocityResponseWriter" startup="lazy"/>
<queryResponseWriter name="xslt" class="solr.XSLTResponseWriter">
<int name="xsltCacheLifetimeSeconds">5</int>
</queryResponseWriter>
<!-- Legacy config for the admin interface -->
<admin>
<defaultQuery>*:*</defaultQuery>
</admin>
</config>
Solr 8.7.0
solr 8.7.0 schema.xml
<?xml version="1.0" encoding="UTF-8" ?> <schema name="articles"
version="1.6"> <uniqueKey>id</uniqueKey> <!--Define default scorer
--> <similarity class="solr.LegacyBM25SimilarityFactory"/>
<!--Depricated in solr 8 -->
<!--<defaultSearchField>text</defaultSearchField> -->
<!--<solrQueryParser defaultOperator="AND" /> --> <!--Define
fieldTypes Trie* has been replaced by *PointField--> <fieldType
name="string" class="solr.StrField" sortMissingLast="true"
omitNorms="true"/> <fieldType name="boolean"
class="solr.BoolField" sortMissingLast="true" omitNorms="true"/>
<fieldType name="pint" class="solr.IntPointField" docValues="true"/>
<fieldType name="pfloat" class="solr.FloatPointField"
docValues="true"/> <fieldType name="plong"
class="solr.LongPointField" docValues="true"/> <fieldType
name="pdouble" class="solr.DoublePointField" docValues="true" />
<fieldType name="pdate" class="solr.DatePointField" omitNorms="true"
docValues="true"/> <!-- lowercases the entire field value, keeping it
as a single token. --> <fieldType name="lowercase"
class="solr.TextField" positionIncrementGap="100" omitNorms="true">
<analyzer> <tokenizer
class="solr.KeywordTokenizerFactory"/> <filter
class="solr.LowerCaseFilterFactory" /> </analyzer>
</fieldType> <!-- Exact text, without word stemming --> <fieldType
name="exact_text" class="solr.TextField" positionIncrementGap="100"
omitNorms="true"> <analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterGraphFilterFactory"
generateWordParts="1" generateNumberParts="0" catenateWords="1"
catenateNumbers="1" catenateAll="0" splitOnNumerics="0"
preserveOriginal="0" splitOnCaseChange="0" types="content-types.txt"
/> <filter class="solr.FlattenGraphFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/> </analyzer>
<analyzer type="query"> <tokenizer
class="solr.WhitespaceTokenizerFactory"/> <filter
class="solr.SynonymGraphFilterFactory" synonyms="synonyms.txt"
ignoreCase="true" expand="true"/> <filter
class="solr.WordDelimiterGraphFilterFactory" generateWordParts="1"
generateNumberParts="0" catenateWords="1" catenateNumbers="1"
catenateAll="0" splitOnNumerics="0" preserveOriginal="0"
splitOnCaseChange="0" types="content-types.txt" /> <filter
class="solr.LowerCaseFilterFactory"/> </analyzer>
</fieldType> <!-- Exact text, case-sensitive, without word stemming
--> <fieldType name="exact_text_and_case" class="solr.TextField"
positionIncrementGap="100" omitNorms="true"> <analyzer
type="index"> <tokenizer
class="solr.WhitespaceTokenizerFactory"/> <filter
class="solr.WordDelimiterGraphFilterFactory" generateWordParts="1"
generateNumberParts="0" catenateWords="1" catenateNumbers="1"
catenateAll="0" splitOnNumerics="0" preserveOriginal="0"
splitOnCaseChange="0" types="content-types.txt" /> <filter
class="solr.FlattenGraphFilterFactory"/> </analyzer>
<analyzer type="query"> <tokenizer
class="solr.WhitespaceTokenizerFactory"/> <filter
class="solr.SynonymGraphFilterFactory" synonyms="synonyms.txt"
ignoreCase="true" expand="true"/> <filter
class="solr.WordDelimiterGraphFilterFactory" generateWordParts="1"
generateNumberParts="0" catenateWords="1" catenateNumbers="1"
catenateAll="0" splitOnNumerics="0" preserveOriginal="0"
splitOnCaseChange="0" types="content-types.txt" /> </analyzer>
</fieldType> <!-- Exact text (without word stemming) but
normalized. Used for the headline field --> <fieldType
name="exact_text_normalized" class="solr.TextField"
positionIncrementGap="100" omitNorms="true"> <analyzer
type="index"> <tokenizer
class="solr.WhitespaceTokenizerFactory"/> <filter
class="solr.WordDelimiterGraphFilterFactory" generateWordParts="1"
generateNumberParts="0" catenateWords="1" catenateNumbers="1"
catenateAll="0" splitOnNumerics="0" preserveOriginal="0"
splitOnCaseChange="0" types="content-types.txt" /> <filter
class="solr.FlattenGraphFilterFactory"/> <filter
class="solr.LowerCaseFilterFactory"/> </analyzer> <analyzer
type="query"> <tokenizer
class="solr.WhitespaceTokenizerFactory"/> <filter
class="solr.SynonymGraphFilterFactory" synonyms="synonyms.txt"
ignoreCase="true" expand="true"/> <filter
class="solr.WordDelimiterGraphFilterFactory" generateWordParts="1"
generateNumberParts="0" catenateWords="1" catenateNumbers="1"
catenateAll="0" splitOnNumerics="0" preserveOriginal="0"
splitOnCaseChange="0" types="content-types.txt" /> <filter
class="solr.LowerCaseFilterFactory"/> </analyzer>
</fieldType> <!-- The default (stemmed) text field for general queries
--> <fieldType name="text" class="solr.TextField"
positionIncrementGap="100" omitNorms="true"> <analyzer
type="index"> <tokenizer
class="solr.WhitespaceTokenizerFactory"/> <filter
class="solr.WordDelimiterGraphFilterFactory" generateWordParts="1"
generateNumberParts="0" catenateWords="1" catenateNumbers="1"
catenateAll="0" splitOnNumerics="0" preserveOriginal="0"
splitOnCaseChange="0" types="content-types.txt" /> <filter
class="solr.FlattenGraphFilterFactory"/> <filter
class="solr.LowerCaseFilterFactory"/> <filter
class="solr.ASCIIFoldingFilterFactory" preserveOriginal="true"/>
<filter class="solr.SnowballPorterFilterFactory"
language="English" /> </analyzer> <analyzer
type="query"> <tokenizer
class="solr.WhitespaceTokenizerFactory"/> <filter
class="solr.SynonymGraphFilterFactory" synonyms="synonyms.txt"
ignoreCase="true" expand="true"/> <filter
class="solr.WordDelimiterGraphFilterFactory" generateWordParts="1"
generateNumberParts="0" catenateWords="1" catenateNumbers="1"
catenateAll="0" splitOnNumerics="0" preserveOriginal="0"
splitOnCaseChange="0" types="content-types.txt" /> <filter
class="solr.LowerCaseFilterFactory"/> <filter
class="solr.ASCIIFoldingFilterFactory" preserveOriginal="true"/>
<filter class="solr.SnowballPorterFilterFactory"
language="English" /> </analyzer> </fieldType> <!--
General --> <field name="id" type="string" indexed="true"
stored="true" multiValued="false" required="true" docValues="true"/>
<field name="django_ct" type="string" indexed="true" stored="true"
multiValued="false" docValues="true" /> <field name="django_id"
type="string" indexed="true" stored="true" multiValued="false"
docValues="true" /> <field name="lang" type="string"
indexed="true" stored="true" multiValued="false" docValues="true" />
<!-- Content --> <field name="headline" type="exact_text_normalized"
indexed="true" stored="true" multiValued="false" /> <!-- <field
name="intro" type="text" indexed="true" stored="false"
multiValued="false" /> --> <field name="intro"
type="exact_text_normalized" indexed="true" stored="false"
multiValued="false" /> <field name="text" type="text"
indexed="true" stored="false" multiValued="false" /> <field
name="content" type="text" indexed="false" stored="true"
multiValued="false" /> <field name="content_fulltext" type="text"
stored="false" indexed="true" multiValued="false" /> <field
name="content_exact" type="exact_text" stored="false" indexed="true"
multiValued="false" /> <!-- generated from `text` --> <field
name="content_exact_case" type="exact_text_and_case" stored="false"
indexed="true" multiValued="false" /> <!-- generated from `text` -->
<!-- Source Data --> <field name="published_at" type="pdate"
indexed="true" stored="true" multiValued="false" docValues="true" />
<field name="publication_type" type="string" indexed="true"
stored="true" multiValued="false" docValues="true" /> <field
name="feed_id" type="plong" indexed="true" stored="true"
multiValued="true" docValues="true" /> <field name="subscription"
type="pint" indexed="true" stored="false" docValues="true" />
<field name="priority_fetch" type="boolean" indexed="true"
stored="true" /> <!-- Ranking --> <field name="priority" type="pfloat"
indexed="true" stored="false" multiValued="false" docValues="true" />
<field name="site_rank" type="plong" indexed="true" stored="false"
multiValued="false" docValues="true" /> <field
name="combined_priority_weight" type="pfloat" indexed="true"
stored="true" multiValued="false" docValues="true" /> <field
name="valid_firms" type="plong" indexed="true" stored="false"
multiValued="true" docValues="true" /> <!-- Pre-Tagging of Saved
Searches --> <field name="ss" type="plong" indexed="true"
stored="false" multiValued="true" docValues="true" /> <field
name="tags" type="string" indexed="true" stored="true"
multiValued="true" docValues="true" /> <field
name="last_taggable_change" type="pdate" indexed="true" stored="true"
multiValued="false" docValues="true" /> <field
name="tagged_topics" type="plong" indexed="true" stored="true"
multiValued="true" docValues="true" /> <field
name="tagged_about_sources" type="plong" indexed="true" stored="true"
multiValued="true" docValues="true" /> <field
name="tagged_created_sources" type="plong" indexed="true"
stored="true" multiValued="true" docValues="true" /> <!-- Event
Specific --> <field name="end_date" type="pdate" indexed="true"
stored="true" multiValued="false" docValues="true" /> <field
name="start_date" type="pdate" indexed="true" stored="true"
multiValued="false" docValues="true" /> <!-- Twitter specific -->
<field name="tweeter" type="lowercase" indexed="true" stored="true"
multiValued="false" /> <!-- Functional --> <field name="fingerprint"
type="string" stored="false" indexed="true" multiValued="false"
docValues="true" /> <field name="_version_" type="plong"
indexed="true" stored="true" docValues="true" /> <!-- Copy text into
content_exact --> <copyField source="text" dest="content_exact" />
<copyField source="text" dest="content_exact_case" /> <!-- Insights
--> <field name="has_signal" type="pint" indexed="true" stored="true"
multiValued="false" docValues="true" /> <!-- Industry Entities -->
<field name="industry_tags" type="plong" indexed="true" stored="true"
multiValued="true" docValues="true" /> </schema>
solr 8.7.0 solrconfig.xml
<?xml version="1.0" encoding="UTF-8" ?> <config>
<luceneMatchVersion>8.7.0</luceneMatchVersion> <lib
dir="${solr.install.dir:../../../..}/contrib/extraction/lib"
regex=".*\.jar" /> <lib dir="${solr.install.dir:../../../..}/dist/"
regex="solr-cell-\d.*\.jar" /> <lib
dir="${solr.install.dir:../../../..}/contrib/clustering/lib/"
regex=".*\.jar" /> <lib dir="${solr.install.dir:../../../..}/dist/"
regex="solr-clustering-\d.*\.jar" /> <lib
dir="${solr.install.dir:../../../..}/contrib/langid/lib/"
regex=".*\.jar" /> <lib dir="${solr.install.dir:../../../..}/dist/"
regex="solr-langid-\d.*\.jar" /> <lib
dir="${solr.install.dir:../../../..}/dist/" regex="solr-ltr-\d.*\.jar"
/> <lib dir="${solr.install.dir:../../../..}/contrib/velocity/lib"
regex=".*\.jar" /> <lib dir="${solr.install.dir:../../../..}/dist/"
regex="solr-velocity-\d.*\.jar" />
<dataDir>${solr.data.dir:}</dataDir> <directoryFactory
name="DirectoryFactory"
class="${solr.directoryFactory:solr.NRTCachingDirectoryFactory}"/>
<schemaFactory class="ClassicIndexSchemaFactory">
</schemaFactory> <codecFactory class="solr.SchemaCodecFactory"/>
<indexConfig> <mergePolicyFactory
class="org.apache.solr.index.TieredMergePolicyFactory"> <int
name="maxMergeAtOnce">10</int> <int
name="segmentsPerTier">2</int> <double
name="noCFSRatio">0.1</double> </mergePolicyFactory>
<lockType>${solr.lock.type:native}</lockType> </indexConfig>
<jmx />
<updateHandler class="solr.DirectUpdateHandler2">
<updateLog> <str name="dir">${solr.ulog.dir:}</str> <int
name="numVersionBuckets">${solr.ulog.numVersionBuckets:65536}</int>
</updateLog> <autoCommit> <maxTime>600000</maxTime>
<maxDocs>1000000</maxDocs> <openSearcher>false</openSearcher>
</autoCommit>
<autoSoftCommit> <maxTime>120000</maxTime>
</autoSoftCommit> </updateHandler>
<query>
<maxBooleanClauses>4096</maxBooleanClauses>
<slowQueryThresholdMillis>100000</slowQueryThresholdMillis>
<filterCache class="solr.CaffeineCache" size="3600" initialSize="2048"
autowarmCount="2048"/>
<queryResultCache class="solr.CaffeineCache" size="1024"
initialSize="512" autowarmCount="512"/> <documentCache
class="solr.CaffeineCache" size="4096" initialSize="1024"
autowarmCount="1024"/> <cache name="perSegFilter"
class="solr.CaffeineCache" size="10" initialSize="0"
autowarmCount="10" regenerator="solr.NoOpRegenerator" />
<enableLazyFieldLoading>true</enableLazyFieldLoading>
<queryResultWindowSize>20</queryResultWindowSize>
<queryResultMaxDocsCached>200</queryResultMaxDocsCached> <listener
event="newSearcher" class="solr.QuerySenderListener"> <arr
name="queries"> </arr> </listener> <listener
event="firstSearcher" class="solr.QuerySenderListener"> <arr
name="queries"> <lst> <str name="q">static
firstSearcher warming in solrconfig.xml</str> </lst>
</arr> </listener> <useColdSearcher>true</useColdSearcher>
<maxWarmingSearchers>4</maxWarmingSearchers> </query>
<requestDispatcher>
<requestParsers enableRemoteStreaming="false"
multipartUploadLimitInKB="2048000" />
<httpCaching never304="true" />
</requestDispatcher> <requestHandler name="/select"
class="solr.SearchHandler"> <lst name="defaults"> <str
name="echoParams">explicit</str> <int name="rows">10</int>
<str name="df">text</str> <str name="q.op">AND</str>
<str name="group">true</str> <str
name="group.field">fingerprint</str> <int
name="group.limit">6</int> <str name="group.ngroups">true</str>
<int name="f.feed_id.facet.mincount">1</int> <int
name="f.linked_searches.facet.mincount">1</int> <int
name="timeAllowed">120000</int> </lst>
</requestHandler> <requestHandler name="/get"
class="solr.RealTimeGetHandler"> <lst name="defaults">
<str name="omitHeader">true</str> <str name="wt">json</str>
<str name="indent">true</str> </lst> </requestHandler>
<requestHandler name="/export" class="solr.SearchHandler"> <lst
name="invariants"> <str name="rq">{!xport}</str> <str
name="wt">xsort</str> <str name="distrib">false</str> </lst>
<arr name="components"> <str>query</str> </arr>
</requestHandler> <requestHandler name="/update"
class="solr.UpdateRequestHandler"> </requestHandler> <requestHandler
name="/update/extract" startup="lazy"
class="solr.extraction.ExtractingRequestHandler" > <lst
name="defaults"> <str name="lowernames">true</str> <str
name="uprefix">ignored_</str> <str name="captureAttr">true</str>
<str name="fmap.a">links</str> <str
name="fmap.div">ignored_</str> </lst> </requestHandler>
<requestHandler name="/analysis/field" startup="lazy"
class="solr.FieldAnalysisRequestHandler" /> <requestHandler
name="/analysis/document" class="solr.DocumentAnalysisRequestHandler"
startup="lazy" />
<requestHandler name="/admin/ping" class="solr.PingRequestHandler">
<lst name="invariants"> <str name="q">solrpingquery</str>
</lst> <lst name="defaults"> <str
name="echoParams">all</str> </lst> </requestHandler>
<requestHandler name="/debug/dump" class="solr.DumpRequestHandler" >
<lst name="defaults"> <str name="echoParams">explicit</str>
<str name="echoHandler">true</str> </lst> </requestHandler>
<requestHandler name="/replication" class="solr.ReplicationHandler"
startup="lazy" /> <searchComponent name="spellcheck"
class="solr.SpellCheckComponent"> <str
name="queryAnalyzerFieldType">textSpell</str> <lst
name="spellchecker"> <str name="name">default</str> <str
name="field">name</str> <str
name="classname">solr.DirectSolrSpellChecker</str> <str
name="distanceMeasure">internal</str> <float
name="accuracy">0.5</float> <int name="maxEdits">2</int> <int
name="minPrefix">1</int> <int name="maxInspections">5</int> <int
name="minQueryLength">4</int> <float
name="maxQueryFrequency">0.01</float> </lst> <lst name="spellchecker">
<str name="name">wordbreak</str> <str
name="classname">solr.WordBreakSolrSpellChecker</str> <str
name="field">name</str> <str name="combineWords">true</str>
<str name="breakWords">true</str> <int
name="maxChanges">10</int> </lst> </searchComponent>
<searchComponent name="tvComponent" class="solr.TermVectorComponent"/>
<searchComponent name="clustering"
enable="${solr.clustering.enabled:false}"
class="solr.clustering.ClusteringComponent" > <lst name="engine"> <str
name="name">default</str> <str
name="carrot.algorithm">org.carrot2.clustering.lingo.LingoClusteringAlgorithm</str>
<str name="LingoClusteringAlgorithm.desiredClusterCountBase">20</str>
<str name="carrot.lexicalResourcesDir">clustering/carrot2</str> <str
name="MultilingualClustering.defaultLanguage">ENGLISH</str> </lst>
<lst name="engine"> <str name="name">stc</str> <str
name="carrot.algorithm">org.carrot2.clustering.stc.STCClusteringAlgorithm</str>
</lst> </searchComponent> <requestHandler name="/clustering"
startup="lazy" enable="${solr.clustering.enabled:false}"
class="solr.SearchHandler"> <lst name="defaults"> <bool
name="clustering">true</bool> <str
name="clustering.engine">default</str> <bool
name="clustering.results">true</bool> <str
name="carrot.title">name</str> <str name="carrot.url">id</str>
<str name="carrot.snippet">features</str> <bool
name="carrot.produceSummary">true</bool> <bool
name="carrot.outputSubClusters">false</bool> <str
name="defType">edismax</str> <str name="qf"> text^0.5
features^1.0 name^1.2 sku^1.5 id^10.0 manu^1.1 cat^1.4 </str>
<str name="q.alt">*:*</str> <str name="rows">10</str>
<str name="fl">*,score</str> </lst> <arr
name="last-components"> <str>clustering</str> </arr>
</requestHandler>
<searchComponent name="terms" class="solr.TermsComponent"/>
<searchComponent name="elevator" class="solr.QueryElevationComponent"
<str name="queryFieldType">string</str> <str
name="config-file">elevate.xml</str> </searchComponent>
<searchComponent class="solr.HighlightComponent" name="highlight">
<highlighting> <fragmenter name="gap" default="true"
class="solr.highlight.GapFragmenter"> <lst name="defaults">
<int name="hl.fragsize">100</int> </lst>
</fragmenter> <fragmenter name="regex"
class="solr.highlight.RegexFragmenter"> <lst name="defaults">
<int name="hl.fragsize">70</int> <float
name="hl.regex.slop">0.5</float> <str name="hl.regex.pattern">[-\w
,/\n\"']{20,200}</str> </lst> </fragmenter>
<formatter name="html" default="true"
class="solr.highlight.HtmlFormatter"> <lst name="defaults">
<str name="hl.simple.pre"><![CDATA[<em>]]></str>
<str name="hl.simple.post"><![CDATA[</em>]]></str> </lst>
</formatter> <encoder name="html"
class="solr.highlight.HtmlEncoder" /> <fragListBuilder name="simple"
class="solr.highlight.SimpleFragListBuilder"/> <fragListBuilder
name="single" class="solr.highlight.SingleFragListBuilder"/>
<fragListBuilder name="weighted" default="true"
class="solr.highlight.WeightedFragListBuilder"/> <fragmentsBuilder
name="default" default="true"
class="solr.highlight.ScoreOrderFragmentsBuilder"> </fragmentsBuilder>
<fragmentsBuilder name="colored"
class="solr.highlight.ScoreOrderFragmentsBuilder"> <lst
name="defaults"> <str name="hl.tag.pre"><![CDATA[
<b style="background:yellow">,<b
style="background:lawgreen">, <b
style="background:aquamarine">,<b style="background:magenta">,
<b style="background:palegreen">,<b
style="background:coral">, <b
style="background:wheat">,<b style="background:khaki">,
<b style="background:lime">,<b
style="background:deepskyblue">]]></str> <str
name="hl.tag.post"><![CDATA[</b>]]></str> </lst>
</fragmentsBuilder> <boundaryScanner name="default"
default="true" class="solr.highlight.SimpleBoundaryScanner">
<lst name="defaults"> <str name="hl.bs.maxScan">10</str>
<str name="hl.bs.chars">.,!? 	 </str>
</lst> </boundaryScanner> <boundaryScanner
name="breakIterator"
class="solr.highlight.BreakIteratorBoundaryScanner"> <lst
name="defaults"> <str name="hl.bs.type">WORD</str> <str
name="hl.bs.language">en</str> <str
name="hl.bs.country">US</str> </lst> </boundaryScanner>
</highlighting> </searchComponent> <queryResponseWriter
name="json" class="solr.JSONResponseWriter"> <str
name="content-type">text/plain; charset=UTF-8</str>
</queryResponseWriter>
<queryResponseWriter name="velocity"
class="solr.VelocityResponseWriter" startup="lazy"/>
<queryResponseWriter name="xslt" class="solr.XSLTResponseWriter">
<int name="xsltCacheLifetimeSeconds">5</int> </queryResponseWriter>
<admin> <defaultQuery>*:*</defaultQuery> </admin> </config>
Solr Query examples.
*:*
{!boost
b=sum(product(99999999999,has_signal),product(pow(priority,10),pow(recip(abs(ms(NOW/HOUR,published_at)),2.77e-09,1,1),5)))}((tags:Real_Est
OR (((headline:"real estate"^99999999999 OR headline:"commercial
development"^99999999999 OR headline:"commercial
developer"^99999999999 OR "Real Estate" OR "Real Property" OR
"property law" OR "Property Deal" OR "Property Sale" OR "purchase of
land" OR "Homeowners Association" OR content_exact:"HOA" OR "Board of
Realtors" OR content_exact:"Property Development" OR "CAP Rate" OR
content_exact:"Housing Demand" OR "CRE Finance Council" OR "Housing
Supply" OR "Property Tax" OR content_exact:"FHA" OR
content_exact:"Fully Leased" OR content_exact:"Represented the Buyer"
OR content_exact:"Design/Build" OR "Ad Valorem" OR "Anchor Tenant" OR
"Build to suit" OR "Certificate of Occupancy" OR "Eminent Domain" OR
"new office building" OR "new office development" OR "Adverse
possession" OR "Allodial title" OR "planning law" OR "planning
permission" OR "housebuilder" OR "housebiilding" OR
content_exact:"housebuilder" OR "Fee Simple" OR "Fee tail" OR "Quiet
Title" OR "Restraint on alienation" OR "Rule in Shelley" OR "Doctrine
of worthier title" OR "Worthier Title Doctrine" OR
content_exact:"Easement" OR "Equitable servitude")) OR
((tagged_topics:(27) OR tagged_about_sources:(27) OR
tagged_created_sources:(27)) OR (tagged_topics:(107263) OR
tagged_about_sources:(107263) OR tagged_created_sources:(107263)) OR
(((content_exact:"Office Building" OR "Office Complex" OR "Office
Tower" OR "Office Space" OR "Office Center" OR "Office Campus" OR
"Class A Office" OR "Class B Office" OR "Class C Office" OR
content_exact:"Class A Building" OR content_exact:"Class B Building"
OR content_exact:"Class C Building" OR content_exact:"Class A Tower"
OR content_exact:"Class B Tower" OR content_exact:"Class C Tower" OR
content_exact:"corporate office" OR "office property" OR "office
properties"))) OR (tagged_topics:(119) OR tagged_about_sources:(119)
OR tagged_created_sources:(119)))) AND NOT ("intellectual property" OR
"plan testimonial")) AND ((((tags:"geo_morocco"^0.9 OR *:*) OR
(content_exact:"March Madness"^0.19999 OR
headline:"recognizes"^0.19999 OR headline:("holiday sale" OR "tech
deals" OR "Black Friday Sale" OR "Black Friday deals"~5 OR "Market
Analysis" OR wildfire OR arrested OR stabbed OR "celebrate birthday"~5
OR "market expected boom"~5 OR "what to expect" OR "where to
find")^0.199999999999 OR content_exact:"state championship
game"^0.19999 OR content_exact:"playstation 4"^0.1999999999999 OR
content_exact:"recover after shock"^0.19999 OR content_exact:"losing
streak"^0.19999 OR content_exact:"with win over"^0.19999 OR
headline:(content_exact:"Islamic state")^0.19999 OR
headline:("accident")^0.1999999999 OR
headline:(content_exact:"badgers")^0.19999 headline:("part time" OR
"full time" OR "accuweather" OR "snowstorm" OR PHOTOS)^0.199999999999
OR headline:(content_exact:"investor alert")^0.19999999999999 OR
headline:(content_exact:"stock")^0.19999999 OR
headline:(content_exact:"cuts holdings" OR content_exact:"raises
holdings" OR content_exact:"reduces holdings")^0.19999999 OR
headline:("ResearchAndMarkets.com")^0.19999 OR
headline:(content_exact:"conference")^0.19999 OR
headline:(content_exact:"of the year")^0.19999 OR
headline:(content_exact:"rankings")^0.19999 OR ("edged
higher")^0.1999999999999999 OR ("edged lower")^0.1999999999999999 OR
headline:(content_exact:"blue devils")^0.19999 OR
headline:(content_exact:"shares climb")^0.19999 OR
headline:(content_exact:"volunteer")^0.19999999 OR
headline:(content_exact:"murderer")^0.19999 OR
headline:(content_exact:"murdered")^0.19999 OR
headline:(content_exact:"hurricane")^0.19999 OR
headline:(content_exact:"tornado")^0.19999 OR
headline:(content_exact:"storm")^0.19999 OR
headline:(content_exact:"found dead")^0.19999 OR
headline:(content_exact:"celebrity")^0.19999999 OR
headline:(content_exact:"registration underway")^0.19 OR
headline:(content_exact:"boko haram")^0.19999999 OR
headline:(content_exact:"police arrest")^0.19999 OR "human
remains"^0.1999 OR "slaying"^0.1999 OR "home prices"^0.1999 OR
"transfer news"^0.1999 OR headline:("militia")^0.19999999 OR
(content_exact:"shooting")^0.19999 OR headline:("ISIS")^0.19999999 OR
headline:(content_exact:"prostitution")^0.19999999 OR
headline:(content_exact:"drugs")^0.19999 OR
content_exact:"winger"^0.19999999 OR "happy birthday"^0.19999 OR
"happy easter"^0.19999 OR "merry christmas"^0.19999 OR "reported at
trading volume"^0.199999 OR "most active stocks"^0.199999 OR "loss
narrows"^0.199999 OR "earnings conference"^0.199999 OR "put
options"^0.199999 OR "trading range"^0.199999 OR "week low"^0.199999
OR "week high"^0.199999 OR "neutral"^0.199999 OR "downgraded"^0.199999
OR "upgraded"^0.199999 OR "average rating"^0.199999 OR "financial
report"^0.19999999 OR "quarterly"^0.199999 OR "q1 loss"^0.19 OR "q3
loss"^0.19999999 OR "q4 loss"^0.19999999 OR "q2 loss"^0.19999999 OR
"financial results"^0.1999999 OR "upgrades"^0.19999999 OR
"upgraded"^0.19999 OR "downgrades"^0.19999 OR "downgraded"^0.19999 OR
"consensus estimate"^0.19999 OR "analyst estimate"^0.19999 OR
"consensus analyst estimate"^0.199999 OR "q1 results"^0.19999 OR "q2
results"^0.19999 OR "q3 results"^0.19999999 OR "q4 results"^0.19999 OR
content_exact:"EPS"^0.19999999 OR "fiscal results"^0.19999 OR
"financial results"^0.1999 OR "profits up"^0.19999999 OR "profit
down"^0.19999 OR "quarter report"^0.19999 OR "quarterly report"^0.19
OR "earnings"^0.19999 OR "quarterly results"^0.19999999 OR "earnings
report"^0.19999999 OR "quarterly earnings"^0.19999 OR
content_exact:"narrows"^0.19999 OR content_exact:"quarter
loss"^0.19999999 OR content_exact:"quarterly losses"^0.19999 OR
content_exact:"quarterly loss"^0.19999 OR content_exact:"quarter
results"^0.19999999 OR content_exact:"report of earnings"^0.19999999
OR "earnings release"^0.19999999 OR "research reports"^0.19999999 OR
"target raised"^0.19999999 OR "try any of our foolish"^0.19999999 OR
"jim cramer"^0.19999999 OR content_exact:"jumps"^0.19 OR
headline:(content_exact:"coverage")^0.1999999 OR headline:("rose
stock"~5)^0.1999999999 OR headline:("declined stock"~5)^0.1999999999
OR headline:("FOREX")^0.199999999 OR
content_exact:"unloads"^0.19999999 OR "shares drops"^0.19999999 OR
"research and markets"^0.19999999 OR headline:("price
target")^0.1999999999 OR headline:("early movers")^0.1999999999 OR
headline:("rating")^0.1999999999 OR headline:("stock")^0.1999999999 OR
headline:("stocks")^0.199999999 OR "U.S. stocks were lower"^0.1999999
OR headline:("slides")^0.199999999 OR headline:("wall st")^0.199999999
OR headline:("indexes")^0.199999999 OR headline:("financial
results")^0.1999999999999999 OR headline:("closing bell")^0.19 OR
headline:(content_exact:"higher volume")^0.1999 OR headline:("trading
lower")^0.1999 OR headline:(content_exact:"research and
markets")^0.1999999 OR (content_exact:"mid-day changers")^0.1999999 OR
(headline:"a share")^0.1999999 OR (headline:"insider
buying")^0.1999999 OR (headline:"short interest")^0.1999999 OR
(headline:"shares of")^0.1999999 OR (headline:"market
movers")^0.1999999 OR (headline:"analyst")^0.19999999999 OR
(headline:"analysts")^0.19999999999 OR (headline:"dow
spikes")^0.19999999999 OR (headline:"dow movers")^0.1999999 OR
(headline:"bidness")^0.1999999)) AND NOT ((headline:("market report"
OR "market by offering" OR "market segmentation"~6 OR "applications
forecast" OR "market tremendous growth"~8 OR "market significant
growth"~8 OR "market status" OR "forecast 2019"~4 OR "forecast 2020"~4
OR "forecast 2021"~4 OR "forecast 2022"~4 OR "forecast 2023"~4 OR
"forecast 2024"~4 OR "forecast 2025"~4 OR "forecast 2026"~4 OR
"forecast 2027"~4 OR "valuation reach"~4 OR "market grow during"~5 OR
"market survey report"~5 OR "holding cut by") OR headline:("investing
advise" OR "market to witness" OR "position decreased by" OR
"increases stake" OR "market study" OR "market size" OR "global
forecast" OR "stock analysts" OR "sentiment shift") OR
headline:("global industry") OR headline:("dow gains") OR
headline:("forecast industry"~5 OR "worldwide forecast"~7 OR "market
analysis"~5) OR headline:("researchandmarkets.com") OR
headline:("morning movers") OR headline:("markets now") OR
headline:("market trends"~5) OR headline:("market estimated valued"~9)
OR headline:("market projected to grow") OR headline:("market expected
to grow"~6) OR headline:("falls to low"~6) OR headline:("Zacks
investment research") OR headline:("SWOT analysis") OR "equal weight"
OR headline:("brokerage recommendations") OR headline:("ratings
outlook") OR headline:("financial stocks") OR headline:("equities
research") OR headline:("given average recommendation") OR
headline:("from analysts") OR headline:("target price") OR "Barclays
target price"~15 OR headline:("Consensus Recommendation") OR
headline:("Coverage initiated") OR headline:("Wall street opens
lower") OR headline:("Wall street pulls back") OR headline:("Wall
street advances") OR headline:("Wall street opens higher") OR
headline:("REPORTS ACQUISITION BY DIRECTOR") OR headline:("REPORTS
ACQUISITION BY Senior") OR headline:("REPORTS ACQUISITION BY VP") OR
headline:("REPORTS ACQUISITION BY executive") OR headline:("REPORTS
ACQUISITION BY CEO") headline:("cut sell"~3) OR headline:("lowered
sell"~3) OR headline:("PT lowered") OR headline:("cut neutral"~3) OR
headline:("lowered neutral"~3) OR headline:("cut hold"~3) OR
headline:("lowered hold"~3) OR headline:("hold rating"~3) OR
headline:("raised buy"~4) OR headline:("raised to") OR
headline:("lowered buy"~4) OR headline:("rating buy"~4) OR
headline:("rating add"~4) OR headline:("lowered underperform"~3) OR
headline:("outperform") OR headline:("downgraded by") OR
headline:("upgraded by") OR headline:("downgraded to") OR
headline:("upgraded to") OR headline:("announces dividend"~3) OR
headline:("plans dividend"~3) headline:("issues dividend"~3) OR
headline:("shares sold") OR headline:("shares bought") OR ("shares
reached high"~9) OR "research note issued to investors" OR "move per
share"~8) OR "apply now" OR "Undergraduate degree or equivalent"~6 OR
"your cv" OR "Add my CV to the" OR "We are currently looking for a" OR
"a competitive salary" OR headline:("roadshow" OR "terms of service
violation") OR headline:("best deals"~4 OR "thanksgiving travel"~4 OR
"thanksgiving guide"~4 OR "happy thanksgiving" OR "best of 2018"~5 OR
"black friday hours"~5 OR "black Friday freebies"~5 OR "stores open
thanksgiving"~5 OR "stores open christmas"~5 OR "cyber monday" OR
"black friday deal"~8 OR "thanksgiving dinner" OR santa OR "wedding
announcements" OR "holiday sales" OR "white nationalist" OR "shooting"
OR "mall shootings" OR "stabbing" OR "holiday gift" OR "family
killed"~7 OR "killed by car" OR "apply now" OR obituary OR "entry
level" OR "support worker" OR "a career within" OR "recipe" OR
"Exclusive opportunity" OR "content acquisition")))) AND NOT
((feed_id:"101505" OR feed_id:"95622" OR feed_id:"104135" OR
feed_id:"95624" OR feed_id:"6537" OR feed_id:"104138" OR
feed_id:"104140" OR feed_id:"95629" OR feed_id:"92622" OR
feed_id:"104366" OR feed_id:"99342" OR feed_id:"82520" OR
feed_id:"94172" OR feed_id:"11967")) AND
((tags:content_us^999999999999) OR *:*) AND (((tags:"news_major"^99)
OR feed_id:"108735"^99999999 OR feed_id:"68677"^99999999 OR
feed_id:"89672"^99999999 OR feed_id:"94600"^99999999 OR
feed_id:"95627"^99999999 OR feed_id:"11501"^99999999 OR
feed_id:"3470"^99999999 OR feed_id:"53326"^99999999 OR
feed_id:"42417"^99999999 OR feed_id:"43069"^99999999 OR
feed_id:"108734"^99999999 OR feed_id:"75797"^99999999 OR
feed_id:"107094"^99999999 OR feed_id:"48503"^99999999 OR
feed_id:"105598"^99999999 OR feed_id:"11675"^99999999 OR
feed_id:"28476"^99999999 OR feed_id:"57757"^99999999 OR
feed_id:"99741"^99999999 OR feed_id:"70591"^99999999) OR *:*)) /* None */
Filter query parameters:
(valid_firms:(0 OR 1) OR (*:* AND -valid_firms:[* TO *]))
publication_type:(news OR blog OR press_release OR publication)
lang:(en OR es)
published_at:["2021-04-01T07:00:00Z" TO "2021-04-15T16:42:28.150394Z"]
OLD cluster query time
"*QTime*":1209,
NEW cluster query time – almost twice as long
"*QTime*":2316,
Thank you in advance for any help you can provide.
Logo Description automatically generated
a MODERN GOVERNANCE company
*Russell Bahr*
/Lead Infrastructure Engineer/
543 NW York Drive | Suite 100 | Bend, OR 97703
Direct: 541-306-3271 | rb...@manzama.com <mailto:rb...@manzama.com> |
www.manzama.com<http://www.manzama.com>
<http://www.manzama.com<http://www.manzama.com>>