anchor.diff:                   count(*)))
   ----
   
  -The output now includes a `nodeScore` property. In the output below notice how eggs has a higher
  -nodeScore than milk even though they have the same `count(+++*+++)`. This is because milk appears more
  +The output now includes a `nodeScore` property. In the output below notice how *eggs* has a higher
  +nodeScore than *milk* even though they have the same `count(+++*+++)`. This is because milk appears more
   frequently in the entire index than eggs does. The `docFreq` property added by the `nodeScore` function
  -shows the term frequency in the index. Because of the lower `docFreq` eggs is considered more relevant
  +shows the document frequency in the index. Because of the lower `docFreq` eggs is considered more relevant
   to this subgraph, and a better recommendation to be paired with butter.
   
   [source,json]
  
positive.code: 
  Log records and other data indexed in Solr have connections between them that can be seen as a distributed graph.
  Graph expressions provide a mechanism for identifying root nodes in the graph and walking their connections.
  The general goal of the graph walk is to materialize a specific subgraph and perform link analysis to understand
  the connections between nodes.
  
  In the next few sections below we'll review the graph theory behind Solr's graph expressions.
  
negative.code: The `count(+++*+++)` aggregation counts the "gathered" nodes, in this case the values in the `product_s` field.
  Notice that the `count(+++*+++)` result is the same as the number of ancestors.
  This will always be the case because the nodes function first deduplicates the edges before
  counting the gathered nodes. Because of this the `count(+++*+++)` aggregation always calculates the
  inbound degree centrality for the gathered nodes.
  
  === Dot Product
  
  There is a direct relationship between the *inbound degree* with bipartite graph recommenders and the *dot product*.
  This relationship can be clearly seen in our working example once we include a column for butter:
  
  image::images/math-expressions/graph2.png[]
  
  If we compute the dot product between the butter column and the other product columns you will find that the dot product equals the inbound degree in each case.
  This tells us that a nearest neighbor search, using a maximum inner product similarity, would select the column with the highest inbound degree.
  
  === Node Scoring
  
  The degree of the node describes how many nodes in the subgraph link to it.
  But this does not tell us if the node is particularly central to this subgraph or if it is just a
  very frequent node in the entire graph. Nodes that appear frequently in the subgraph but
  infrequently in the entire graph can be considered more *relevant* to the subgraph.
  
  The search index contains information about how frequently each node appears in the entire index.
  Using a technique similar to *tf-idf* document scoring, graph expressions can combine the
  